在Criteria API中,我必须根据查询中返回的日期列的日期部分对查询的结果进行分组。你能建议如何做到这一点?Group Criteria API查询的日期部分结果
以下是多选查询
cq.multiselect(root.get( “ID”),root.get( “recievedOn”));
其中recievedOn是日期列。我想根据日,周,月和年进行查询。你能建议如何做到这一点。
在Criteria API中,我必须根据查询中返回的日期列的日期部分对查询的结果进行分组。你能建议如何做到这一点?Group Criteria API查询的日期部分结果
以下是多选查询
cq.multiselect(root.get( “ID”),root.get( “recievedOn”));
其中recievedOn是日期列。我想根据日,周,月和年进行查询。你能建议如何做到这一点。
如果您使用GROUP BY,那么您只能选择按分组的字段,或应用聚合函数(count/min/max/etc),所以我不确定您要做什么?
按日期分组很容易,但如果您只想按日期的特定部分分组,则需要使用某个功能。 Criteria API没有定义任何日期函数,但是您可以使用函数()API来调用特定的数据库函数。
见, http://en.wikibooks.org/wiki/Java_Persistence/Criteria#Group_By
http://en.wikibooks.org/wiki/Java_Persistence/Criteria#Criteria_API_special_functions
如果您正在使用的EclipseLink,你也可以结合使用标准附加功能的支持表达对象,
或者你可以使用JPQL,其中有更多的扩展,
http://www.eclipse.org/eclipselink/documentation/2.4/jpa/extensions/j_extract.htm#extract