Được rồi, tôi đã dành rất nhiều thời gian để cố gắng làm cho công việc này phù hợp với tôi, NHƯNG CUỐI CÙNG TÔI ĐÃ LÀM ĐƯỢC. Hãy cho những nhà thám hiểm tương lai và cộng đồng biết điều đó.
Những gì hiệu quả với tôi là truyền đến khoảng thời gian được A.H. trình bày tại đây:
select current_timestamp + ( 2 || ' days')::interval;
Giải pháp của bạn sau đó sẽ giống như vậy (khi truy vấn thứ 2 được phân tích):
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( :interval )\\:\\:interval ", nativeQuery = true)
Hoặc đối với truy vấn thứ 3 (chính xác là cách tôi đã làm cho nó hoạt động trong trường hợp của tôi)
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( ?1 )\\:\\:interval", nativeQuery = true)
Vui lòng lưu ý thoát ::
trở thành \\:\\:
. Trong SQL thuần túy mà bạn sẽ kiểm tra trong trình soạn thảo SQL của mình, hãy sử dụng ::
, nhưng trong mã kho lưu trữ của bạn trong @Query
những dấu hiệu truyền này cần phải được loại bỏ (nếu không Hibernate / JPA của bạn sẽ không hài lòng).