有没有办法做这样的事情
select a from A a join fetch a.b
a.b
仅存在A
的某些子类?
我在哪里
@Entity
class A {
}
@Entity
class SubA extends A {
@OneToMany
List<B> b;
}
换句话说,我只想在a.b
为真的情况下才能获取加入@OneToMany集合a instanceof SubA
。
这可能吗?或者有没有更好的方法来避免集合的n + 1选择问题?我真正想要的是试图阻止对集合中的每个B
进行往返 - 获取连接似乎对此有用。
我正在使用EclipseLink,但只要有可能就更喜欢JPA标准。
答案 0 :(得分:0)
“更好的方式”(无论如何使用Eclipselink)看起来像是通过使用@OneToMany
注释@BatchFetch
或添加查询提示来使用批量提取。