[英]How to format Date in JPA query
我有一個 SpringBoot 應用程序,我在其中使用存儲庫 class 來查詢我的 Oracle 數據庫表。
以下是查詢和關聯的 function 的定義方式:
@Query( value =" SELECT status "+
" FROM tb1 " +
" WHERE " +
" to_date(cob_Date,'dd-MON-yy') = to_date(:cobDate,'yyyy-mm-dd') " +
" AND business_Day ='BD3' " +
" AND intra_day ='INTRA_06' " +
" AND datasource_name =:datasource" +
" AND upper(status) = 'COMPLETED' " +
" AND frequency = 'MONTHLY' " +
" AND processed = 'Y' " +
" ORDER BY create_date desc FETCH FIRST 1 rows only"
, nativeQuery=true)
List<String> getImpalaJobStatus(@Param("intraDay") String intraDay,
@Param("businessDay") String businessDay,
@Param("cobDate") LocalDate cobDate,
@Param("datasource") String datasource);
如果我在 SQL 開發人員中運行這個查詢,那么我會得到我的結果,但是如果我從我的 SpringBoot 應用程序運行它,它什么都不返回。
我懷疑我在日期字段“COB_DATE”和 WHERE 下的這個子句上做錯了什么:
" to_date(cob_Date,'dd-MON-yy') = to_date(:cobDate,'yyyy-mm-dd') " +
我試了一下:
" cob_Date =:cobDate "
但它也沒有用。
在方法簽名cobDate
聲明為LocalDate
意味着您已經擁有日期格式的值。 如果是這樣,則不需要在查詢中調用to_date()
。 嘗試直接綁定LocalDate
值:
@Query( value =" SELECT status "+
" FROM tb1 " +
" WHERE " +
" to_date(cob_Date,'dd-MON-yy') = :cobDate " +
" AND business_Day ='BD3' " +
" AND intra_day ='INTRA_06' " +
" AND datasource_name =:datasource" +
" AND upper(status) = 'COMPLETED' " +
" AND frequency = 'MONTHLY' " +
" AND processed = 'Y' " +
" ORDER BY create_date desc FETCH FIRST 1 rows only"
, nativeQuery=true)
List<String> getImpalaJobStatus(@Param("intraDay") String intraDay,
@Param("businessDay") String businessDay,
@Param("cobDate") LocalDate cobDate,
@Param("datasource") String datasource);
請注意,您的 Oracle JBDC 驅動程序應該知道如何將LocalDate
值編組到數據庫,以便查詢有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.