首页 文章

Hibernate Criteria等同于SQL查询

提问于
浏览
0

我有一个要求,我需要从表中查找超过180天的所有行 . 为此,我编写了以下SQL查询:

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

在上面的查询中, UPDATE_TS 是一个存储每行时间戳的列 .

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

我正在使用Hibernate进行数据持久化,所以我想使用Hibernate Criteria API来做同样的事情 . 我在Hibernate方面做得不多,所以发现它有点困难 .

有人可以帮我这个吗?

2 回答

  • 0

    您可以获得CURRENT_DATE |中的一个CURRENT_TIME | CURRENT_TIMESTAMP用于JPQL中的日期/时间操作 . 我没有在任何实现中看到 EXTRACT 用法 . 所以你可能想直接比较日子?有关详细信息,请查看JPQL documentation .

  • 0

    Hibernate查询语言将是您的理想选择 .

    from YourEntity e where (day(current_date()) - day(e.myDate)) > 180
    

    我没有测试过这个HQL但类似的东西应该可行 . 阅读HQL:http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/queryhql.html

相关问题