【发布时间】:2011-05-17 10:16:09
【问题描述】:
我有一个从外部代码获取 JPA 实体的服务。在此服务中,我想遍历一个延迟加载的集合,该集合是该实体的一个属性,以查看客户端是否向其添加了相对于数据库中当前版本的内容。
但是,客户端可能从未接触过该集合,因此它仍未初始化。这导致了众所周知的
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.example.SomeEntity.
当然,如果客户从未接触过该集合,我的服务就不必检查它是否有可能发生的变化。问题是我似乎无法找到一种方法来测试集合是否已初始化。我想我可以打电话给size(),如果它抛出LazyInitializationException,我会知道,但我尽量不依赖这种模式。
在某处有一些isInitialized() 方法吗?
【问题讨论】:
标签: java hibernate jpa lazy-loading