Ok, saya menghabiskan waktu yang sangat lama untuk mencoba membuat ini bekerja untuk saya, TAPI AKHIRNYA SAYA MENDAPATKANNYA. Biarkan para petualang dan komunitas masa depan mengetahuinya juga.
Apa yang berhasil bagi saya adalah casting ke interval yang disajikan oleh A.H. di sini:
select current_timestamp + ( 2 || ' days')::interval;
Solusi Anda akan menjadi seperti itu (ketika kueri ke-2 dianalisis):
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( :interval )\\:\\:interval ", nativeQuery = true)
Atau untuk kueri ke-3 (seperti itulah cara saya membuatnya berfungsi dalam kasus saya)
@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( ?1 )\\:\\:interval", nativeQuery = true)
Harap perhatikan melarikan diri ::
menjadi \\:\\:
. Dalam SQL murni Anda yang akan Anda uji di editor SQL Anda gunakan ::
, tetapi dalam kode repositori Anda di dalam @Query
tanda-tanda casting ini harus diloloskan (jika tidak, Hibernate/JPA Anda tidak akan senang).