2009-10-19 9 views
7

Necesito un ayudante para saber si una propiedad se ha cargado como una manera de evitar LazyInitializationException. ¿Es posible?¿Hay algún ayuda para saber si Hibernate ha cargado una propiedad?

@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()); 

Respuesta

13

Existen dos métodos, en realidad.

Para saber si se ha inicializado una propiedad floja puede invocar el método Hibernate.isPropertyInitialized() con la instancia de su entidad y el nombre de propiedad como parámetros.

Para saber si un vago colección (o entidad) se ha inicializado (como en el ejemplo) puede invocar Hibernate.isInitialized() con la colección de instancia (entidad) como parámetro.

+0

Siempre usted, Chss. Gracias. –

Cuestiones relacionadas