我希望通过查询中的类型进行区分,但我想要区分的不是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
Architect
和Engineer
是Leader
类的子类。
我已经尝试过了,但是我收到了这个错误:
org.hibernate.QueryException: could not resolve property
答案 0 :(得分:2)
试试这个。
SELECT d
FROM Project p join p.leader d
WHERE TYPE(d) = Architect OR TYPE(d) = Engineer