1

有没有办法做这样的事情

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只有当a instanceof SubA它为真时,我才想获取并加入 @OneToMany 集合。

这可能吗?或者有没有更好的方法来避免集合的 n 加一选择问题?我真正想要的是阻止B对集合中的每个进行往返 - fetch join 似乎对此很有效。

我正在使用 EclipseLink,但尽可能喜欢 JPA 标准。

4

1 回答 1

0

“更好的方法”(无论如何使用 Eclipselink)看起来是使用批量获取,或者通过注释@OneToMany@BatchFetch添加查询提示。

于 2013-07-26T01:52:26.237 回答