我有一个关于 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/

10-11 20:46