【问题标题】:PropertyNotFoundException: Unable to locate propertyPropertyNotFoundException:无法找到属性
【发布时间】:2019-03-21 15:49:13
【问题描述】:

我有以下命名查询:

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”是由抽象类表示的实体。这个课程由许多课程扩展,我只想加入其中一个课程。使用这种形式的namedQuery,我有这个错误:

org.hibernate.PropertyNotFoundException:无法找到属性 命名为ce

因为 Hibernate 尝试与扩展该抽象类的所有类进行连接,而不仅仅是我感兴趣的一个,而且并非所有类都包含“ce”字段。 我该如何解决?

【问题讨论】:

    标签: hibernate jpa named-query


    【解决方案1】:

    对于向下转换使用 JPQL 函数treat()

    JOIN TREAT(rngsValueCSV AS SubClass) s
    JOIN s.ce rngsCe
    

    【讨论】:

      猜你喜欢
      • 2012-06-01
      • 2015-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-27
      • 2017-02-15
      相关资源
      最近更新 更多