在日期字段上使用max的JPQL查询
|
我需要查询以从一组记录中查找具有最新日期的记录。我已经尝试了很多东西,最近的是这样的:
从ImportedMessage消息中选择msg,msg.createdDate,其中msg.siteId =?1且msg.createdDate = max(msg.createdDate)按msg.createdDate分组
不幸的是,我尝试过的所有东西都产生了某种错误。我似乎得到最多的错误是:
原因:java.sql.SQLException:不在聚合函数或group by子句中:
语句中选择org.hsqldb.Expression@688c688c [选择importme.me.IMPORTED_MSG_ID作为
col_0_0_,导入为me0_.CREATED_DATE,作为col_1_0_,最大值(importedme0_.CREATED_DATE)为,
col_2_0_,导入为me0_.IMPORTED_MSG_ID,作为IMPORTED1_1_,导入为me0_.CREATED_BY,作为
CREATED2_1_,导入为me0_。CREATED_DATE为CREATED3_1_,导入为me0_.UPDATED_BY,作为
UPDATED4_1_,导入为me0_.UPDATED_DATE为UPDATED5_1_,导入为me0_.IMPORT_TYPE为
IMPORT6_1_,导入为me0_.MESSAGE作为MESSAGE1_,导入为me0_.PROCESSED_FLAG,
PROCESSED8_1_,从IMPORTED_MSG中导入的me0_.SITE_ID为SITE9_1_,其中importme0_
importedme0_.SITE_ID =?和importedme0_.CREATED_DATE =最大值(importedme0_.CREATED_DATE)
按importme0_.CREATED_DATE分组
在org.hsqldb.jdbc.Util.throwError(未知来源)
在org.hsqldb.jdbc.jdbcPreparedStatement处。(未知源)
在org.hsqldb.jdbc.jdbcConnection.prepareStatement(未知来源)
在org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:534)
在org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:452)
在org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:161)
在org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1616)
在org.hibernate.loader.Loader.doQuery(Loader.java:717)
在org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270)
在org.hibernate.loader.Loader.doList(Loader.java:2449)
...另外52个
我相信这是在告诉我的是,我的select子句中没有适当的内容来允许组工作。但是,我尝试了各种组合,一切都导致了此错误。
有人可以告诉我我在这里做错了什么吗?
没有找到相关结果
已邀请:
2 个回复
漂汀拦
需复