具有hibernate条件的db2计数(*)order by

具有hibernate条件的db2计数(*)order by,db2,hibernate3,Db2,Hibernate3,我尝试了以下代码: List resultList = new ArrayList(); Criteria criteria = createCriteria(SystemLogFile.class); criteria.add(Expression.eq("clientId", clientId)); criteria.addOrder(Order.desc("systemLogFileId")); if (page == -1) { resultList.add(criteria.set

我尝试了以下代码:

List resultList = new ArrayList();
Criteria criteria = createCriteria(SystemLogFile.class);
criteria.add(Expression.eq("clientId", clientId));
criteria.addOrder(Order.desc("systemLogFileId"));
if (page == -1) {
  resultList.add(criteria.setProjection(Projections.rowCount()).uniqueResult());
} else {
  criteria.setFirstResult(page * pageSize);
  criteria.setMaxResults(pageSize);
  resultList = criteria.list();
  setModelsListAsLoaded(resultList);
}
return resultList;
此代码生成以下查询:

select count(*) as y0_ from krn_system_log_file this_ where this_.CLIENT_ID=? order by this_.SYSTEM_LOG_FILE_ID desc
这适用于oracle和mysql,但不适用于db2! 我得到这个错误消息: 由以下原因引起:com.ibm.db2.jcc.am.io:db2 SQL错误:SQLCODE=-119,SQLSTATE=42803,SQLERRMC=SYSTEM\u LOG\u FILE\u ID,DRIVER=3.57.82意味着:

以SELECT中指定的表达式start开头的表达式 子句、HAVING子句或ORDER BY子句未在 GROUP BY子句或它位于SELECT子句、HAVING子句或ORDER中 具有列函数且未指定GROUP BY子句的BY子句

在DB2中,如果您想按
这个.SYSTEM\u LOG\u FILE\u ID
排序,那么必须在
GROUPBY
子句中。我不使用Hibernate,但是您可以将
分组依据
添加到
标准
对象中吗