我的数据库表 LASTUPDATED 中有一个 Timestamp 列,我通过轮询来决定是否应该更新一行。如果记录在过去 10 分钟内没有更新,我会更新它。我想将日期处理委托给数据库,但以下都不起作用:
这个说“预期的令牌::附近[...]”
Query query = entityManager.createQuery("SELECT x FROM MyEntity x WHERE x.lastUpdated < SYSTIMESTAMP - INTERVAL :olderThen MINUTE");
query.setParameter("olderThen", 10);
list = query.getResultList();
这个说“意外的令牌:'10'靠近[...]
Query query = entityManager.createQuery("SELECT x FROM MyEntity x WHERE x.lastUpdated < SYSTIMESTAMP - INTERVAL '10' MINUTE");
list = query.getResultList();
而这个人说的是意外的令牌:'?靠近[...]
Query query = entityManager.createQuery("SELECT x FROM MyEntity x WHERE x.lastUpdated < SYSTIMESTAMP - INTERVAL ?1 MINUTE");
query.setParameter(1, 10);
list = query.getResultList();
顺便说一句,我可以在 JPA 中使用这个 INTERVAL 关键字吗?该表达式在语法上是正确的,我用控制台对其进行了测试。
谢谢你们的帮助,Gergely