2012-05-25 7 views
5

Ho una relazione genitore-figlio con il set di attributi pigro pigro false, quindi quando ottengo la classe genitore con una query ottengo anche i suoi figli.E 'possibile caricare pigro per una relazione non pigra in Hibernate?

Di solito è preferibile caricare tutto, genitori-figli, ma in un caso non ho bisogno di farlo.

C'è un modo per evitare di recuperare i figli quando ottengo il genitore senza alterare la relazione lazy = false?

+0

Perché non semplicemente cambiare la configurazione di caricamento lenta da questa relazione a "falso"? Ci sono dei vincoli o requisiti specifici che ti fanno esitare? – kyiu

risposta

4

No, non è possibile. L'unica cosa che si può fare se si dispone di un solo caso in cui l'associazione non deve essere recuperato è quello di utilizzare un DTO al posto del soggetto, e utilizzare le proiezioni per recuperare solo quello che vuoi:

String hql = "select firstName, lastName from User u where ..."; 
List<Object[]> rows = session.createQuery(hql).list(); 
List<UserDTO> users = new ArrayList<UserDTO>(rows.size()); 
for (Object[] row : rows) { 
    users.add(new User((String) row[0], (String) row[1])); 
} 
return users; 
Problemi correlati