Olá pessoal, bom dia!!
tudo bom?
eu tou com algumas dúvidas aqui q eu não achei por aqui..não sei se foi mal pesquisado..mas vamos lá!!
eu tenho uma classe q todas as minhas classes de negócio extends dela!!
ela chama Tabela...coisa besta mesmo..algo assim:
public class Tabela {
@Id
@Column(name="id")
private Number id;
public Number getId() {
return id;
}
public void setId(Number id) {
this.id = id;
}
}
com isso fiz uma classe de conexão..porém eu fiz uma classe q eu especifico o retorno..eu esqueci o nome disso...mas eh algo assim:
public class ServicoDeConexao<T extends Tabela>
{
public ServicoDeConexao()
{
Configuration anot = new AnnotationConfiguration();
sfac = anot.buildSessionFactory();
}
public T getTabela(String sql)
{
Session session = sfac.openSession();
Transaction tx = session.beginTransaction();
T tabela;
List lista = new ArrayList();
lista = session.createSQLQuery(sql).list();
if(lista.size()>=1)
tabela = (T)lista.get(0);
else
tabela = null;
tx.commit();
session.close();
return tabela;
}
}
bom..eu tenho uma tabela (negócio) Usuario...qd eu uso:
ServicoDeConexao<Usuario> servCon = new ServicoDeConexao<Usuario>();
servCon.getTabela(sqlAqui);
era para retornar o Usuario..porém ele dá erro de cast..primeiro de T para Tabela...logo eu removi o Tabela do extends...
public class ServicoDeConexao<T> {
e continuou dando erro..agora porém de T para Usuario..
creio q entenderam o q eu queria fazer né?
queria um List geral..q independente do Negócio utilizado..ele me retornaria ele como um objeto!
outra coisa!
como faço um singleton dessa classe de conexão?
eu não cnsegui por causa do T!!
Obrigado galera!!