2009-10-19 15 views
7

Ho bisogno di un aiutante per sapere se una proprietà è stata caricata come metodo per evitare LazyInitializationException. È possibile?Esiste un aiuto per sapere se una proprietà è stata caricata da Hibernate?

@Entity 
public class Parent { 
    @OneToMany 
    private List<Child> childList; 
} 

@Entity 
public class Child { 

} 

"select distinct p from Parent p left join fetch p.childList"; 

// Answer goes here 
// I want to avoid LazyInitializationException 
SomeHelper.isLoaded(p.getChildList()); 

risposta

13

Ci sono due metodi, in realtà.

Per scoprire se una proprietà lenta è stata inizializzata, è possibile richiamare il metodo Hibernate.isPropertyInitialized() con l'istanza dell'entità e il nome della proprietà come parametri.

per scoprire se un pigro collezione (o ente) è stato inizializzato (come nel tuo esempio) è possibile richiamare Hibernate.isInitialized() con la raccolta (entità) istanza come parametro.

+0

Sempre tu, Chss. Grazie. –

Problemi correlati