我有一个班级,其中有几个成员有注释:
@ManyToOne(fetch = FetchType.EAGER)
在我的程序的特定部分,这些加载的数据太多了。不幸的是,我无法更改这些注释,因为这会影响该程序其他部分的性能。在eclipselink中是否有办法将此更改为LAZY以进行1个特定的JPQL查询?
要以另一种方式说明这一点,您可以使用提取连接将LAZY更改为EAGER。我希望有一些东西可以改变EAGER到LAZY
答案 0 :(得分:2)
这是不可能的。我的经验法则是:将所有内容都设置为LAZY,如果您想要提取,请使用自定义查询。
您可以做的最好的事情是加载元组(并填充DTO)而不是加载实体。
答案 1 :(得分:0)
我知道,因为eclipselink 2.3你可以在运行时扩展你的实体,也许检查一下? http://wiki.eclipse.org/EclipseLink/Examples/JPA/Extensibility