当属性仅在某些子类中时,JPA获取连接

时间:2012-11-15 02:01:36

标签: jpa eclipselink

有没有办法做这样的事情

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标准。

1 个答案:

答案 0 :(得分:0)

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