gpt4 book ai didi

java - JPA 查询带有当前时间戳过滤器 - Oracle 的秒数

转载 作者:太空宇宙 更新时间:2023-11-04 07:36:35 25 4
gpt4 key购买 nike

我正在使用 JPA、Eclipse 链接、Oracle。我试图在 JPA 查询中引入一个相当于以下 Oracle 表达式的条件

current_timestamp - NUMTODSINTERVAL(10, 'SECOND')

我尝试了几个类似于以下的查询

select u from User u where (current_timestamp - FUNC('NUMTODSINTERVAL', :offset, 'SECOND')) > u.birth_date 

但无济于事。所有这些都会导致语法错误。我想避免 native 查询以及使用 java 计算值。
我在一些oracle网站上发现了以下内容。

Use the add_months function in Oracle, and use simple math to convert the month value to seconds.

如果以上可行,那么我将能够使用以下

Query query = entityManager.createQuery("select u"
+ " from User u"
+ " where"
+ " FUNC('add_months', CURRENT_TIMESTAMP, :offset) > u.birth_date "//)"//
);
query.setParameter("offset", getOffSet());

编辑:我需要一些 Eclipse 链接 JPA 方式来执行此操作,或者使用 Oracle 方式,使用 add_months 可用于添加/扣除秒数。

最佳答案

(标准 JPA 2.1)JPQL 允许“FUNCTION”包含在 WHERE 子句中。除了在某些供应商扩展中之外,任何地方都不存在“FUNC”,并且始终建议人们避免那些特别是在有标准的情况下

关于java - JPA 查询带有当前时间戳过滤器 - Oracle 的秒数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16773386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com