【发布时间】:2012-04-09 23:03:02
【问题描述】:
我有一个相当复杂的标准,用于检索、排序和分页服务器端数据。我摘录了以下摘录:
// create criteria over a bunch of tables...
Criteria testCriteria = getSession().createCriteria(PriceRequest.class)
.setResultTransformer(CriteriaSpecification.DISTINCT_ROOT_ENTITY)
.setFetchMode("pricedBy", FetchMode.JOIN)
.setFetchMode("canceledBy", FetchMode.JOIN)
.setFetchMode("product", FetchMode.JOIN)
.setFetchMode("product.underlyings", FetchMode.JOIN)
.setFetchMode("product.tradedBy", FetchMode.JOIN)
.setFetchMode("product.requestedBy", FetchMode.JOIN)
.setFetchMode("fileUploads", FetchMode.JOIN);
// add various filter fields (only if required in real code)...
Criteria subCriteria = testCriteria
.createCriteria("product", JoinFragment.LEFT_OUTER_JOIN)
.setFetchMode("underlyings", FetchMode.JOIN)
.add(Restrictions.ge("maturityDate", new Date()));
testCriteria.addOrder(Order.desc("product.id")); // (1)
testCriteria.addOrder(Order.desc("product.maturityDate")); // (2)
List list = testCriteria.list();
语句(1)运行良好,语句(2)以以下异常结束:
严重:Servlet.service() for servlet rest 抛出异常 org.hibernate.QueryException:无法解析属性: product.maturityDate of: com.my.model.PriceRequest
我选择了“maturityDate”作为示例,但除了“product.id”之外的所有产品属性都存在此问题。
我还尝试为产品添加别名(“prod”)。这允许按到期日期(“prod.maturityDate”)排序,但无法将限制添加到子条件。
我完全不知道出了什么问题......
【问题讨论】:
-
maturityDate 属性是否存在于 product 中?
-
绝对。在文本中查看我的更新。
标签: hibernate hibernate-criteria