Ajuda createQuery

2 respostas
luciano_gomes

bom dia .

alguem saberia me dizer como obtenho um resultado de busca usando “createCriteria(MinhaClase.class)” so com os campos que eu preciso da minha tabela,como eu filtro sem usar sql ou da pra juntar os dois??? pois quando uso o metodo “createCriteria(MinhaClase.class)” ele traz todos os resultados do banco.

desde ja agradeço

2 Respostas

von.juliano

Dá um certo trabalho fazer isso, seguinte:

Para obter só os campos que você quer, vai usar a classe Projections:
Criteria c = session.createCriteria(SuaClasse.class);

ProjectionList pl = Projections.projectionList();
pl.add(Projections.property("campo1"));
pl.add(Projections.property("campo2"));
		
c.setProjection(pl);
O problema é que isso retorna um List. Pra facilitar a nossa vida, o hibernate proporciona uma interface chamada ResultTransformer, e implementando ela você consegue converter os objetos de forma apropriada. No exemplo eu vou usar uma implementação de ResultTransformer que já vem com o hibernate, a AliasToBeanResultTransformer, que se obtém a partir de uma fábrica de ResultTransformer, a Transformers:
c.setResultTransformer(Transformers.aliasToBean(SuaClasse.class))
return c.list();
Agora é só estudar e adaptar no que você precisa.

Blz? Flw! :thumbup:

luciano_gomes

obrigado,

eu tava perdidinho. valeu mesmo!!!

Criado 5 de setembro de 2008
Ultima resposta 5 de set. de 2008
Respostas 2
Participantes 2