Olá, comunidade.
Estou usando Hibernate em um Projeto e no DAO estou fazendo a Query desta maneira:
public Object recuperarUmObjeto(String nomeClasse, String nomeAtributo, Integer chavePrimaria)
{
sessao = HibernateUtility.getSession();//Abrindo uma sessão
tx = sessao.beginTransaction(); //Iniciando uma transação
Query select = sessao.createQuery(“from " + nomeClasse + " where " + nomeAtributo + " = ?”);
select.setInteger(0, chavePrimaria.intValue());
Object umObjeto = (Object)select.uniqueResult();
tx.commit();
sessao.close();
return umObjeto;
}
Onde:
- nomeClasse é o nome da classe que está mapeada;
- nomeAtributo é a coluna mapeada para chave primária do banco de dados;
- chavePrimaria é a pk;
Assim qualquer objeto que eu quiser recuperar basta chamar este método.
Porém, acho que não fica legal a concatenação ("from "+ nomeClasse…). Existe algum outro meio de se fazer a Query sem concatenação do nome da classe???
Obrigado.
MPSV