sql >> Databáze >  >> RDS >> PostgreSQL

Anotace Spring Boot Query s nativeQuery nefunguje v Postgresql

Dobře, trávím opravdu dlouhou dobu snahou, aby mi to fungovalo, ALE KONEČNĚ JSEM TO DOSTAL. Dejte to vědět i budoucím dobrodruhům a komunitě.

Co se mi osvědčilo, byl casting do intervalu, který představil A.H. zde:

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

Vaše řešení by pak bylo něco takového (když je analyzován 2. dotaz):

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

Nebo pro 3. dotaz (což je přesně tak, jak jsem to udělal v mém případě)

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

Všimněte si prosím escapování :: se změní na \\:\\: . Ve vašem čistém SQL, který byste testovali ve vašem SQL editoru, použijte :: , ale v kódu vašeho úložiště v rámci @Query tyto vrhací znaky je třeba uniknout (jinak bude vaše Hibernate/JPA nespokojená).




  1. Oracle UTL_SMTP:Příklad odeslání pošty s přílohou pomocí ověřování Oracle Wallet Authentication

  2. Ladění výkonu PL/SQL pro dotazy typu LIKE '%...%' se zástupnými znaky

  3. Jak připojit Postgres k serveru localhost pomocí pgAdmin na Ubuntu?

  4. Je vyhledávání RID rychlejší než vyhledávání klíčů?