在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