Restringir os atributos de uma classe

6 respostas
Z

Galera ,

Tenho uma classe com quase 20 atributos .
Preciso fazer uma query que so retorna 1 deles .

Tem como fazer isto via Criterion do Hibernate ou o melhor metodo eh colocar um sql direto ?

Abracos

6 Respostas

Jair_Rillo_Junior

Tem sim.
No caso do Criteria você pode usar Projections.
No caso de HQL você pode setar quais os atributos que você quer que retorna.
Em ambos os casos ele retorna um array de Object[] e para facilitar a sua vida, você pode usar um ResultTransformer para tratar esse Object[].

Z

Ola Jair , obrigado pela reposta .

Voce por acaso tem algum tutorial ou examplo simples do Projections?

Obrigado

Jair_Rillo_Junior

Eu não tenho, mas sempre aconselho o site oficial do Hibernate porque a documentação deles é muito boa

T

você pode usar a anotação @Transient ou o modifier transient.

Z

Ah mas ai ficaria como uma regra geral neh . Nao compensaria .

Outra duvida que eu tenho , tem como seter um fetch lazy apenas para uma query?

Abs

Jair_Rillo_Junior

Se você tem uma query com Lazy e quer “iniciar” as pedencias, você pode usar o comando Hibernate.initialize().
Tem também o esquema de FETCH ALL. Na doc oficial do Hibernate explica melhor isso

Criado 8 de junho de 2010
Ultima resposta 9 de jun. de 2010
Respostas 6
Participantes 3