2017-05-03 69 views
-1

我已經創建了具有間隔的本地查詢。查詢工作正常,當我硬編碼day查詢:Postgres Interval不能與原生彈簧數據一起使用JPA查詢

@Query(value="select * from orders where created_date < clock_timestamp() - interval ' 5 days'",nativeQuery=true) 

但當我提供的數據與@Param這樣的:

@Query(value="select * from orders where created_date < clock_timestamp() - interval :day 'days'",nativeQuery=true) 
List<Order> getData(@Param("day") String day) 

我得到這個錯誤:

Caused by: org.postgresql.util.PSQLException: ERROR: syntax error at or near "$1"

回答

0

你可以不會爲這樣的區間提供價值。您需要將多個參數值與時間間隔基本單元:

"select * from orders 
where created_date < clock_timestamp() - (interval '1' day) * :days" 

當你面對的日子裏,你可以簡化到:

"select * from orders 
where created_date < clock_timestamp() - :days" 
+0

感謝您的幫助 –