sql >> Database >  >> RDS >> PostgreSQL

Spring Boot Query-annotatie met nativeQuery werkt niet in Postgresql

Ok, ik heb er heel lang over gedaan om dit voor mij te laten werken, MAAR IK HEB HET EINDELIJK. Laat het de toekomstige avonturiers en de gemeenschap ook weten.

Wat voor mij werkte, was casten naar interval gepresenteerd door A.H. hier:

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

Uw oplossing zou dan ongeveer zo zijn (wanneer de tweede vraag wordt geanalyseerd):

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

Of voor de derde vraag (en dat is precies hoe ik het in mijn geval heb laten werken)

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

Let op ontsnappen :: wordt \\:\\: . Gebruik in uw pure SQL die u in uw SQL-editor zou testen :: , maar in uw repositorycode binnen @Query deze casting-tekens moeten worden ontsnapt (anders zal uw Hibernate/JPA niet tevreden zijn).




  1. Bereken kantooruren tussen twee datums

  2. Wat is MySQL:een overzicht

  3. UNION- en LIMIT-bewerkingen combineren in MySQL-query

  4. Hoe om te gaan met optionele parameters in SQL-query?