我正在将Hibernate与JPA一起使用,并且具有如下所示的关系:
public class PencilImpl implements Pencil { @ManyToOne(targetEntity = PersonImpl.class, fetch = FetchType.LAZY) @JoinColumn(name = "owner", nullable = false) private Person owner; ... @Override public final Person getOwner() { return owner; } }
自从我开始使用LAZY访 存 类型以来,每次尝试获取铅笔的所有者( pencil.getOwner )时,我都会得到一个非null对象,该对象的所有内部属性都设置为null。
我看起来像是由Hibernate创建的代理没有在应该的时候从数据库中获取真实的对象。
有任何想法吗?谢谢 :)
正如JB Nizet所建议的那样,我类的getter中的 最终 修饰符与hibernate为延迟加载的关系创建的代理混淆了。