Tengo clases con una relación de muchos a uno. Cuando los consulto usando Criteria.list, los campos perezosos se rellenan.
public class SE { @OneToMany(fetch = FetchType.LAZY, mappedBy = "mSe") private List<RS> mRs; } public class RS { @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "my_join_id") private SE mSe; }...
Criteria criteria = session.createCriteria(SE.class); List<SE> myObjects = criteria.list(); // SE objects have lazy list populated. why?¿Cómo evito que se carguen los campos perezosos?
¿Cómo sabes que está poblado?
Si está buscando con su depurador, es un comportamiento normal porque el depurador hace muchas cosas y la mayoría de las veces llama al captador para tener una representación de cadena de la instancia. Dado que se llama al captador, se activa la carga diferida.
Lo que puede hacer para asegurarse de que la carga sea realmente diferida es eliminar su anotación @Transactional , y debería tener un error al intentar acceder a SE en el depurador.