我有一个关于 Purchase 的惰性 @ManyToOne
列定义为:
@ManyToOne(fetch = FetchType.LAZY)
Sale sale = null
但是,当我从 db 加载实体时,它会直接加载:
Purchase purchase = em.find(Purchase.class, id);
PersistenceUnitUtil unitUtil = em
.getEntityManagerFactory()
.getPersistenceUnitUtil();
System.err.println(unitUtil.isLoaded(purchase, "sale"));
即使尚未加载该字段,这也会返回
true
。我究竟做错了什么?
( hibernate 4.3.11.Final)
最佳答案
因为它是可空字段。 Hibernate 无法知道该值是否存在于 db 中,因此它必须查询 db 以将 null 或值分配给该字段。
关于java - hibernate @ManyToOne(fetch = FetchType.LAZY) 忽略,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45856511/