Eclipse链接:如何通过子类属性过滤超类查询

时间:2013-10-14 16:02:29

标签: java jpa eclipselink

我有一个超类类型的ReadAllQuery,需要通过仅存在于一个子类上的属性进行过滤。我使用单表继承,因此该属性适用于DB中的所有子类对象行,但它只映射到代码中的一个子类域对象。但是当我尝试这个查询时,Eclipselink(2.4.0)给了我一个例外:无效的查询键[subclassAttribute]。

作为参考,我想生成的sql看起来像这样:

SELECT *
FROM superclass
WHERE
    (subclass_discriminator = 'A' AND attribute_a = 1)
    OR
    (subclass_discriminator = 'B' AND attribute_b = 1)

1 个答案:

答案 0 :(得分:0)

JPA 2.0引入了“TREAT”,允许您使用子类属性http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_treat.htm访问和过滤