【发布时间】:2013-07-17 05:44:05
【问题描述】:
我的 DB 表中有一个 Timestamp 列 LASTUPDATED,我通过轮询来决定是否应该更新一行。如果记录在过去 10 分钟内没有更新,我会更新它。我想将日期处理委托给数据库,但以下都不起作用:
这个说“enexpected token: : near[...]”
Query query = entityManager.createQuery("SELECT x FROM MyEntity x WHERE x.lastUpdated < SYSTIMESTAMP - INTERVAL :olderThen MINUTE");
query.setParameter("olderThen", 10);
list = query.getResultList();
这个说“unexpected token: '10' near[...]
Query query = entityManager.createQuery("SELECT x FROM MyEntity x WHERE x.lastUpdated < SYSTIMESTAMP - INTERVAL '10' MINUTE");
list = query.getResultList();
这个说 unexpected token: '?'附近[...]
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 关键字吗?该表达式在语法上是正确的,我用控制台对其进行了测试。
感谢大家的帮助, 格格利
【问题讨论】: