Jpa Eclipselink批处理与获取组中的获取连接读取是否可能?

Jpa Eclipselink批处理与获取组中的获取连接读取是否可能?,jpa,data-binding,jpa-2.0,eclipselink,criteria,Jpa,Data Binding,Jpa 2.0,Eclipselink,Criteria,我想使用EclipsLink JPA对一个实体创建一个查询,我需要这个实体的5个字段,其中有很多字段。其中2个字段被连接到一个多个关系中。我只需要每个联接中的2个基本字段 最有效的方法是什么 我已经考虑了很多可能性,根据我所读的内容,批量阅读似乎是最好的选择,但是我相信这只有在我检索完整实体时才会起作用,即从实体a中选择一个。。。我不想这样做的原因是我有LOB和BLOB类型,它们会危险地侵蚀内存 Join fetch是另一个,但实体有10个联接表,我不想复制所有这些数据 我一直在使用fetchg

我想使用EclipsLink JPA对一个实体创建一个查询,我需要这个实体的5个字段,其中有很多字段。其中2个字段被连接到一个多个关系中。我只需要每个联接中的2个基本字段

最有效的方法是什么

我已经考虑了很多可能性,根据我所读的内容,批量阅读似乎是最好的选择,但是我相信这只有在我检索完整实体时才会起作用,即从实体a中选择一个。。。我不想这样做的原因是我有LOB和BLOB类型,它们会危险地侵蚀内存

Join fetch是另一个,但实体有10个联接表,我不想复制所有这些数据

我一直在使用fetchgroups()并指定我想要的字段,这会导致缓存延迟加载。这是可行的,并且内存占用更好。问题是,当我执行entity.getCollection()时,它必须为每个调用执行一个SQL语句,这就是我觉得它效率低下的地方。如果我可以使用某种形式的批处理或连接获取从实体a中选择a.Field、a.Field2,或者更好地将其应用于我的获取组,这将是我所能想象的最好结果,但我不确定是否可以确保它不会加载所有相关表,而只给我想要的表


非常感谢您的帮助/想法。

我认为使用批处理获取也适用于嵌套获取组,您尝试过这个吗

您还可以在FetchGroupManager上设置defaultFetchGroup(直接或通过将fetch=LAZY添加到您不希望在fetch组中使用的字段,即将fetch=LAZY添加到LOB字段)