JPA和eclipselink - 重写FetchType.Eager

时间:2011-08-11 14:31:34

标签: jpa eclipselink

我有一个班级,其中有几个成员有注释:

@ManyToOne(fetch = FetchType.EAGER)

在我的程序的特定部分,这些加载的数据太多了。不幸的是,我无法更改这些注释,因为这会影响该程序其他部分的性能。在eclipselink中是否有办法将此更改为LAZY以进行1个特定的JPQL查询?

要以另一种方式说明这一点,您可以使用提取连接将LAZY更改为EAGER。我希望有一些东西可以改变EAGER到LAZY

2 个答案:

答案 0 :(得分:2)

这是不可能的。我的经验法则是:将所有内容都设置为LAZY,如果您想要提取,请使用自定义查询。

您可以做的最好的事情是加载元组(并填充DTO)而不是加载实体。

答案 1 :(得分:0)

我知道,因为eclipselink 2.3你可以在运行时扩展你的实体,也许检查一下? http://wiki.eclipse.org/EclipseLink/Examples/JPA/Extensibility