问题描述
我有一堂课,其中一些成员带有注释:
I have a class where a few members have annotation:
@ManyToOne(fetch = FetchType.EAGER)
在我程序的特定部分,这些加载了太多的数据.不幸的是,我无法更改这些注释,因为这会影响该程序其他部分的性能. eclipselink中是否可以将1个特定的JPQL查询更改为LAZY?
In the specific part of my program, these load far too many data. Unfortunately, I can't change these annotations as this will influence performance of other parts of this program. Is there a way in eclipselink to change this to LAZY for 1 specific JPQL query?
要用另一种方式表示,您可以通过使用访存联接将LAZY更改为EAGER.我希望能将EAGER更改为LAZY
To phrase this an other way, you can change LAZY to EAGER by using a fetch join. I'm hoping for something which changes EAGER to LAZY
推荐答案
这是不可能的.我的经验法则是:使所有内容都变得懒散,并且如果您想快速获取,请使用自定义查询.
It's not possible. My rule of thumb is : make everything LAZY, and use custom queries if you want eager fetching.
您最好的办法是加载元组(并填充DTO),而不是加载实体.
The best you can do is to load tuples (and populate DTOs) instead of loading entities.
这篇关于JPA和eclipselink-覆盖FetchType.Eager的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!