【发布时间】:2016-11-22 04:32:16
【问题描述】:
我在尝试基于嵌入字段进行排序时遇到上述问题;
例如:我尝试使用属性tObservation.raw.waterLevel.metre 进行排序。
但得到以下异常。
Caused by: org.hibernate.QueryException: Criteria objects cannot be created directly on components. Create a criteria on owning entity and use a dotted property to access component property: tObservation.raw
at org.hibernate.loader.criteria.CriteriaQueryTranslator.getPathInfo(CriteriaQueryTranslator.java:251)
我创建了类似的别名;
criteria.createAlias("tObservation", "0").createAlias("0.raw","1").createAlias("1.waterLevel","2").addOrder(Order.asc("2.meter"))
为什么我会得到那个异常?
以上代码适用于两个级别
例如:tObservation.id
p.s:如果我尝试喜欢;(没有别名)
criteria.addOrder(Order.asc("tObservation.raw.waterLevel.metre"))
我遇到了同样的异常。
我的班级结构
@Entity
class tank {
Observation tObservation;
}
@Entity
class Observation {
@Embedded
RawObservation raw;
}
@Embeddable
class RawObservation{
@Embedded
Length waterLevel;
}
@Embeddable
class Length{
BigDecimal metre
}
【问题讨论】:
标签: hibernate criteria hibernate-criteria