簡體   English   中英

Spring JPA-該位置為[1]的參數不存在

[英]Spring JPA - Parameter with that position [1] did not exist

我正在嘗試將本機查詢與Spring JPA存儲庫一起使用,但一直在獲取異常。

這是我的查詢存儲庫,我不知道為什么我不斷得到異常,因為我設置了@Param值,我也轉義了:字符,並且我想我也沒有[1]參數,因為我的參數應為:lastUpdate not ?1

@Qualifier("eipoEnergyRepository")
public interface EipoEnergyRepository extends JpaRepository<Energy, Integer> {

    @Query(value = "select max(REALENERGY) as REALENERGY, e.OBJECTID as object, "
            + "DATE_FORMAT(MAX(LASTUPDATE),'%Y-%m-%d %H\\:%i\\:00') AS LASTUPDATE "
            + "from ENERGY e WHERE str_to_date(LASTUPDATE, '%Y-%m-%d %H\\:%i\\:%s' ) > str_to_date(':lastUpdate', '%Y-%m-%d %H\\:%i\\:%s' ) " 
            + "group by ROUND(UNIX_TIMESTAMP(LASTUPDATE)/600), e.object", nativeQuery=true)
    List<Energy> findByLastUpdate(@Param("lastUpdate") String lastUpdate);


}

這與https://jira.spring.io/browse/DATAJPA-1235有關,基本上在String文字中對冒號的處理被打破了:-(

一種解決方法是擺脫查詢中可能被解釋為綁定參數的冒號。

在您的情況下,選項可能是:

a)如果您使用Oracle來降低比較的日期精度,請使用trunc 這就是您在where子句中要執行的操作,對嗎? 其他數據庫可能具有類似的功能。

b)在Java端使用其他字符並將其替換為冒號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM