Je ne crois pas que PostgreSQL permette de passer le INTERVAL
les instructions nécessitent une chaîne codée en dur avec un interval '1 day'
-entrée de style ; cependant, vous pouvez y parvenir en convertissant une chaîne en intervalle.
Essayez de remplacer la requête SQL dans votre code par :
select a from ActivationCode a where a.creationTime + (:hoursAgo||' hour')::interval <= CURRENT_TIMESTAMP and a.type = :type and a.account = account
Alternativement, je viens de trouver cette réponse StackOverflow précédente , cela vaudrait la peine d'essayer, mais cela pourrait avoir le même problème (en supposant que cela soit lié à l'analyseur de requêtes de Spring Data JPA):
select a from ActivationCode a where a.creationTime + :hoursAgo * INTERVAL '1 hour' <= CURRENT_TIMESTAMP and a.type = :type and a.account = account