Ich glaube nicht, dass PostgreSQL das Übergeben des INTERVAL
erlaubt Anweisungen erfordern eine fest codierte Zeichenfolge mit einem interval '1 day'
-Stil-Eingabe; Sie können dies jedoch erreichen, indem Sie eine Zeichenfolge in ein Intervall umwandeln.
Versuchen Sie, die SQL-Abfrage in Ihrem Code zu ändern:
select a from ActivationCode a where a.creationTime + (:hoursAgo||' hour')::interval <= CURRENT_TIMESTAMP and a.type = :type and a.account = account
Alternativ habe ich gerade gefunden diese vorherige StackOverflow-Antwort , dies wäre einen Versuch wert, könnte aber dasselbe Problem haben (vorausgesetzt, es hängt mit dem Abfrageparser von Spring Data JPA zusammen):
select a from ActivationCode a where a.creationTime + :hoursAgo * INTERVAL '1 hour' <= CURRENT_TIMESTAMP and a.type = :type and a.account = account