我有一个超类类型的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)
答案 0 :(得分:0)
JPA 2.0引入了“TREAT”,允许您使用子类属性http://eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_treat.htm访问和过滤