Oracle JPA – 使用INTERVAL查询
发布时间:2021-02-07 06:43:40 所属栏目:站长百科 来源:网络整理
导读:我的数据库表中有一个Timestamp列,LASTUPDATED,我调查它以决定是否应更新行.如果记录在过去10分钟内未更新,我会更新它.我想将日期处理委托给DB,但以下都不起作用: 这个说“意外的标记::靠近[…]” Query query = entityManager.createQuery("SELECT x FROM
我的数据库表中有一个Timestamp列,LASTUPDATED,我调查它以决定是否应更新行.如果记录在过去10分钟内未更新,我会更新它.我想将日期处理委托给DB,但以下都不起作用: 这个说“意外的标记::靠近[…]” 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(); 我可以将这个INTERVAL关键字与JPA一起使用吗?表达式在语法上是正确的,我用控制台测试它. 谢谢你们的帮助, 解决方法JPA和Hibernate不兼容间隔,最后我发现它…也支持日期算术,尽管是以更有限的方式.这部分是由于数据库支持的差异,部分是由于查询语言本身缺乏对INTERVAL定义的支持. 只能使用BETWEEN关键字. 顺便说一句,正确的表达是: select x from MyEntity x where cast((systimestamp - (1/24/60) * 10) as timestamp) between lastUpdated and systimestamp (编辑:孝感站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |