Tôi không tin rằng PostgreSQL cho phép chuyển INTERVAL
câu lệnh yêu cầu một chuỗi được mã hóa cứng với interval '1 day'
-style đầu vào; tuy nhiên, bạn có thể đạt được điều này bằng cách truyền một chuỗi thành một khoảng thời gian.
Hãy thử thay đổi truy vấn SQL trong mã của bạn thành:
select a from ActivationCode a where a.creationTime + (:hoursAgo||' hour')::interval <= CURRENT_TIMESTAMP and a.type = :type and a.account = account
Ngoài ra, tôi vừa tìm thấy câu trả lời StackOverflow trước này , điều này sẽ đáng thử nhưng có thể gặp vấn đề tương tự (giả sử nó liên quan đến trình phân tích cú pháp truy vấn của 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