我怎样才能解决这个问题;“不是选定的表达式”;使用Hibernate时出错?
我使用以下方法执行Hibernate查询:我怎样才能解决这个问题;“不是选定的表达式”;使用Hibernate时出错?,hibernate,orm,hql,Hibernate,Orm,Hql,我使用以下方法执行Hibernate查询: @Override public List<ErrorsDTOEntity> getErrors(double daysPrevious, double hoursToShow) { try { Query query = getSession().createQuery("SELECT DISTINCT NEW com.mydomain.esb.jpa.dto.ErrorsDTOEn
@Override
public List<ErrorsDTOEntity> getErrors(double daysPrevious, double hoursToShow) {
try {
Query query = getSession().createQuery("SELECT DISTINCT NEW com.mydomain.esb.jpa.dto.ErrorsDTOEntity(ee, ec.message) "
+ "FROM ErrorsEntity ee, EventCodeEntity ec "
+ "WHERE ee.responseTime > (sysdate - (" + daysPrevious + " + " + hoursToShow + "/24)) "
+ "AND ee.responseTime < (sysdate - " + daysPrevious + ") "
+ "AND ee.serviceResponseCode = ec.code "
+ "GROUP BY ee.domainName, ee.serviceName, ec.message, ee.serviceErrorCount, ee.errorTimestamp, "
+ "ee.deviceName, ee.servErrId, ee.serviceResponseCode, ee.elapsedTime, ee.forwardTime, "
+ "ee.responseCompletionTime, ee.responseSizeAverage, ee.requestSizeAverage, ee.responseTime "
+ "ORDER BY ee.domainName, ec.message");
@SuppressWarnings("unchecked")
List<ErrorsDTOEntity> services = (List<ErrorsDTOEntity>) query.list();
return services;
} catch (HibernateException hex) {
hex.printStackTrace();
}
return null;
}
}
这是由于
ORDER BY
子句中的ee.domainName
造成的,但我不明白为什么以及我能做些什么。事实上,我认为这是由于在查询中使用了DISTINCT
ORA-01791: not a SELECTed expression