Hibernate查询从oracle表获取一小时后退行

时间:2018-02-21 03:24:22

标签: hibernate jpa

我试图通过对oracle数据库使用以下SQL查询来一小时创建/修改行

select * from filecontent where row_mod_dt< = sysdate-1/24 order by row_mod_dt desc;

我试图通过使用以下hibernate命名查询

在我们的java应用程序中实现相同的功能

@NamedQuery(name =“FileContent.findsent”,query =“select file from filecontent c where c.rowmoddt< = current_date - 1/24”)

但它没有给出预期的数据。

请帮助我。

谢谢,

2 个答案:

答案 0 :(得分:0)

您必须使用标识变量c来引用实体属性...以及from而不是表中的实体名称: query="select c from YourEntityName c where c.rowmoddt <= current_date - 1/24 orderby c.rowmoddt desc"

答案 1 :(得分:0)

按照帖子

中的建议修正了此问题

Performing Date/Time Math In HQL?

将查询更改为 @NamedQuery(name="FileContent.findsent",query="select id from filecontent c where c.rowmoddt <= :requiredTime")

在设置参数时,java代码如下所述。

Date in = new Date();
LocalDateTime ldt = LocalDateTime.ofInstant(in.toInstant(), 
ZoneId.systemDefault()).minusHours(1);
Date out = Date.from(ldt.atZone(ZoneId.systemDefault()).toInstant());

query.setParameter("requiredTimeStamp",out, TemporalType.TIMESTAMP);

它可能会帮助别人。谢谢,