我有一个服务,可以从外部代码获取JPA实体。在这个服务中,我想遍历这个实体的属性之一(一个懒加载的集合),以查看客户端相对于数据库中的当前版本是否已添加了内容。
但是,如果客户端从未触及过该集合,则它仍未初始化。这会导致众所周知的
org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: com.example.SomeEntity.
当然,如果客户端从未触及该集合,则我的服务不必检查其中可能的更改。问题在于,我似乎找不到一种测试集合是否被初始化的方法。我想我可以调用size()
并且如果它抛出LazyInitializationException
,那么我就知道了,但是我试图不依赖这样的模式。
是否有某个isInitialized()
方法可用?
Persistence.getPersistenceUtil().isLoaded(org,"user")
。 - A. Parolini