亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

帶有 nativeQuery=false 的 Spring 存儲庫和 DATA_FORMAT

帶有 nativeQuery=false 的 Spring 存儲庫和 DATA_FORMAT

揚帆大魚 2022-05-21 13:28:39
我正在嘗試做一些超級簡單的事情,但是使用 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 有點困難。

您總是可以依靠自定義方法實現,這不應該比首先自己實現存儲庫更難。


查看完整回答
反對 回復 2022-05-21
  • 1 回答
  • 0 關注
  • 305 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號