sql >> Database teknologi >  >> RDS >> PostgreSQL

Spring Boot Query-annotering med nativeQuery virker ikke i Postgresql

Ok, jeg bruger rigtig lang tid på at få det til at virke for mig, MEN JEG FIK DET ENDELIG. Lad også fremtidens eventyrere og samfund vide det.

Det, der virkede for mig, var casting til interval præsenteret af A.H. her:

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

Din løsning ville da være sådan noget (når 2. forespørgsel analyseres):

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

Eller for 3. forespørgsel (hvilket er præcis sådan, jeg fik det til at fungere i mit tilfælde)

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

Bemærk venligst escape :: bliver \\:\\: . Brug :: i din rene SQL, som du ville teste i din SQL-editor , men i din lagerkode i @Query disse støbte tegn skal undslippes (ellers vil din Hibernate/JPA blive utilfreds).




  1. En løsning til DATEDIFF() ignorering af SET DATEFIRST i SQL Server (T-SQL-eksempel)

  2. Tilføj sidesortering og søg ved hjælp af jquery datatable

  3. En oversigt over PostgreSQL Query Caching &Load Balancing

  4. Multi-sætning tabel værdisat funktion vs inline tabel værdisat funktion