当FetchType为LAZY时获取嵌套对象

时间:2012-05-22 19:40:27

标签: java jpa persistence lazy-loading eclipselink

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

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

2 个答案:

答案 0 :(得分:1)

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

请参阅, http://wiki.eclipse.org/EclipseLink/Examples/JPA/AttributeGroup

答案 1 :(得分:0)

EAR不应该像你一样依赖彼此。您将使用类加载器创建一系列问题。

如果您有多个互动的服务或网络应用,它们应该在同一个耳朵中。如果不是,则将常见的jar文件复制到不同的耳朵。