我在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)
答案 0 :(得分:2)
因为它是可以为空的字段。 Hibernate无法知道db中是否存在该值,因此必须查询db以将null或值赋值给该字段。