我有以下namedQuery:
SELECT sr.*
FROM Sr sr
INNER JOIN sr.unitBinds srUnitBind
INNER JOIN srUnitBind.unit su
INNER JOIN sr.provBinds srProvBind
INNER JOIN srProvBind.prov prov
INNER JOIN prov.provActs provActs
LEFT JOIN provActs.ranges rngs
INNER JOIN rngs.value rngsValue
INNER JOIN rngsValue.value rngsValueCSV
INNER JOIN rngsValueCSV.ce rngsCe
AND rngsCe.code = :priority
其中“ rngsValue.value”是由Abstract类表示的实体。本课程有许多课程扩展,我只想加入其中一个。使用这种形式的namedQuery,我会遇到此错误:
org.hibernate.PropertyNotFoundException:无法找到属性 名为ce
因为Hibernate尝试加入扩展该抽象类的所有类,所以不仅我感兴趣,而且并非所有类都包含“ ce”字段。 我该怎么解决?
答案 0 :(得分:0)
对于向下转换,请使用JPQL函数treat()
JOIN TREAT(rngsValueCSV AS SubClass) s
JOIN s.ce rngsCe