我正在嘗試做一些超級簡單的事情,但是使用 Spring Repositories 有點難。基本上我想用 DATE_FORMAT分組,例如: @Query("SELECT " +
" new users.bridge.models.dto.PerformanceDTO(sum(t.gl), sum(t.gl)) " +
"FROM " +
" Transaction t " +
"GROUP BY DATA_FORMATE(t.createdDate,'%Y-%m-%d')")但它會引發語法錯誤。有沒有辦法用 spring 存儲庫做到這一點?我不想使用 nativeQuery=true 標志,否則我不能使用這種語法new gara.users.bridge.models.dto.PerformanceDTO(sum(t.gl), sum(t.gl))更新:錯誤是:所有的java堆棧都很大但是:org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: asc near line 1, column 180 [SELECT new gara.users.bridge.models.dto.PerformanceDTO(sum(t.gl), sum(t.gl),t.createdDate) FROM gara.model.db.Transaction t GROUP BY DATE_FORMAT(t.createdDate,'%Y-%m-%d') asc]
1 回答

SMILET
TA貢獻1796條經驗 獲得超4個贊
如果您指定nativeQuery=false
(默認),您需要使用有效的 JPQL。JPQL 不知道該函數DATE_FORMAT
,但您可以使用通用FUNCTION
函數,該函數允許您調用任意 SQL 函數。
所以像這樣的 group by 子句應該可以工作:GROUP BY FUNCTION('DATA_FORMAT', t.createdDate,'%Y-%m-%d')
請注意,此類查詢不能在數據庫之間移植。
但是使用 Spring Repositories 有點困難。
您總是可以依靠自定義方法實現,這不應該比首先自己實現存儲庫更難。
添加回答
舉報
0/150
提交
取消