PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Anotasi Kueri Boot Musim Semi dengan nativeQuery tidak berfungsi di Postgresql

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).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mengatur Koneksi Jarak Jauh ke PostgreSQL

  2. Mendapatkan NoSuchMethodError:javax.persistence.Table.indexes() saat melakukan kueri JPA

  3. SQL di mana set yang digabungkan harus berisi semua nilai tetapi mungkin berisi lebih banyak

  4. Cara mengatur batas waktu pernyataan untuk eksekusi kueri

  5. Bagaimana saya bisa memasukkan komentar kolom di PostgreSQL melalui Python?