2012-09-20 65 views
0

我有一个要求,我需要从表中找到所有超过180天的行。对于这一点,我已经写了下面的SQL查询:等效于SQL查询的Hibernate条件

SELECT * FROM table_name WHERE 
(EXTRACT (DAY FROM (CURRENT_TIMESTAMP - UPDATE_TS))) > 180 

在上面的查询,UPDATE_TS是存储每一行​​的时间戳列。

我在Oracle中运行了上面的查询,它返回了我所需的结果。

我为我的数据持久性使用Hibernate,所以我想用Hibernate Criteria API来做同样的事情。我在Hibernate中工作不多,因此发现它有点难。

有人可以帮我这个吗?

+0

我想知道如果你不能只是简单地使用'选择..哪里sysdate - update_ts> 180',那么标准将很容易建立。 – Alex

+0

我想要使用Hibernate Criteria API。尽管我可以使用sql查询如果无法使用Criteria做到这一点 – Anand

回答

0

您可以获得CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP用于JPQL中的日期/时间操作。在任何实现中我没有看到EXTRACT的使用情况。所以你可能想直接比较几天?查询JPQL documentation了解更多详情。