标准API中的引用子类属性

时间:2013-12-05 13:24:46

标签: jpa eclipselink criteria

我正在尝试在超类上构建查询,并可选择引用子类的属性(如果该对象是该子类的实例)。

EclipseLink wiki说我应该使用superClassRoot.as(Subclass.class).get(“subclassField”),但它会引发异常:来自托管类型的属性... [DatabaseTable(SUPER_CLASS)]不在场。这些类被映射为@Inheritance(strategy = InheritanceType.JOINED),因此子类有自己的表。

我的期望是EL会为子表创建一个外连接,并可选择引用那些连接的列。

1 个答案:

答案 0 :(得分:0)

我会用两个不同的查询来做,然后简单地合并结果:

  1. 第一个获取超类(而不是子类)的实例
  2. 子类的第二个提取实例(附带条件)。
  3. 如果这不是您应用程序中非常重要的部分,那么这将是完美的。