java - 当 FetchType 为 LAZY 时获取嵌套对象

标签 java jpa persistence lazy-loading eclipselink

我正在开发 EclipseLink,出于性能原因,我们在具有 OneToMany 关系的地方设置了 FetchType.lazy。现在,持久性位于第 1 层,它也有其他业务逻辑,然后还有一些其他 EAR 使用第 1 层的持久性。在获取这些对象时,我遇到了 elipselink 抛出 ClassCast 异常的问题。对这个问题的深入研究表明,这是由于多个耳朵的延迟加载造成的。

现在我想的是在第 1 层创建一个方法,如果其他耳朵想要加载所有对象(即急切加载机制),该方法将被其他耳朵调用。我想知道如何在 eclipselink 中实现这一点?

最佳答案

EclipseLink 定义了允许强制加载关系的加载组。 复制API也可用于强制加载。

看, http://wiki.eclipse.org/EclipseLink/Examples/JPA/AttributeGroup

关于java - 当 FetchType 为 LAZY 时获取嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10708956/

相关文章:

java - Hibernate 不从连接池中释放连接

JPA 事务回滚失败并调用无状态 bean

sql - 在单个 PostgreSQL 查询中多次调用 `now()` 是否总是会给出相同的结果?

java - 为什么在WeakReference中使用final

java - JEE7中如何在JNDI树中指定EJB bean名称

java - 如何使用@Query在JPA中获取自动生成的 key ?

java - Spring findBy 查询方法查找启用的国家以及包含某个城市的国家

java - 使用 JPA 持久化第三方对象

java - 模拟 ReactiveSecurityContextHolder

java - WIN7中使用Java将JSON写入分包中的文件中