PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Adnotacja Spring Boot Query z nativeQuery nie działa w Postgresql

Ok, spędzam naprawdę dużo czasu, próbując sprawić, by to działało dla mnie, ALE WRESZCIE TO ZROBIŁEM. Niech poznają to także przyszli poszukiwacze przygód i społeczność.

U mnie sprawdził się casting na interwał przedstawiony przez A.H. tutaj:

select current_timestamp + ( 2 || ' days')::interval;

Twoje rozwiązanie byłoby wtedy czymś takim (przy analizie drugiego zapytania):

@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( :interval )\\:\\:interval ", nativeQuery = true)

Lub dla trzeciego zapytania (dokładnie tak zrobiłem to w moim przypadku)

@Query(value = "SELECT n.* from nodes n WHERE n.node_id = 10510 AND n.last_good_ping > CURRENT_DATE - ( ?1 )\\:\\:interval", nativeQuery = true)

Zwróć uwagę na ucieczkę :: staje się \\:\\: . W swoim czystym SQL, który testujesz w swoim edytorze SQL, użyj :: , ale w kodzie repozytorium w @Query te znaki rzutowania muszą zostać usunięte (w przeciwnym razie Twój Hibernate/JPA będzie niezadowolony).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jaki jest najlepszy framework wysokiej dostępności PostgreSQL? PAF vs. repmgr vs. Patroni Infografika

  2. Atomic UPDATE .. SELECT w Postgres

  3. Zmienianie pola Enum za pomocą Alembic

  4. Rekord zwrócony z funkcji zawiera połączone kolumny

  5. Jak działa Abs() w PostgreSQL