使用JPA / JPQL中的类成员进行子类判别(TYPE)

时间:2014-02-12 19:13:31

标签: java-ee jpa jpql

我希望通过查询中的类型进行区分,但我想要区分的不是SELECT子句中的实体,而是它的成员。

例如,不要像这样使用TYPE:

SELECT p
FROM Project p
WHERE TYPE(p) = DesignProject OR TYPE(p) = QualityProject

我需要像这样使用它:

SELECT p
FROM Project p
WHERE TYPE(p.leader) = Architect OR TYPE(p.leader) = Engineer

ArchitectEngineerLeader类的子类。

我已经尝试过了,但是我收到了这个错误:

org.hibernate.QueryException: could not resolve property

1 个答案:

答案 0 :(得分:2)

试试这个。

   SELECT d
    FROM Project p join p.leader d
    WHERE TYPE(d) = Architect OR TYPE(d) = Engineer