【问题标题】:How can i write HQL for SYSDATE?如何为 SYSDATE 编写 HQL?
【发布时间】:2012-04-24 21:20:24
【问题描述】:

我有条件检查当前日期 - 3.

select * from TABLE_1 SYSDATE-3 >= TABLE_1.created_date

我应该如何用 Hibernate 查询语言编写?

【问题讨论】:

    标签: hibernate hql


    【解决方案1】:

    对于 Oracle SQL 方言,请使用 sysdate(),如下例所示:

    select e
    from Entity e
    where (e.endDate is null or (e.endDate > sysdate()))
    

    这对orm.xml 或使用<named-query> 时有效

    对于您的特定查询“过去三天内未创建的所有行”,请使用:

    select e from Entity e where to_date(sysdate() - 3) >= e.created_date
    

    【讨论】:

      【解决方案2】:

      您需要使用实体编写 HQL。

      http://docs.jboss.org/hibernate/orm/4.1/manual/en-US/html_single/#queryhql-examples

      有一些使用 sysdate 的例子。

      【讨论】:

      • 在 hql 中使用 SYSDATE-3 是否可取?
      • 如果 sysdate-3 在您的 HQL 方言中注册,那么您可以使用它。
      • SYSDATE 未注册。我正在尝试使用 oracle SYSDATE。
      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 2016-01-17
      • 2021-05-03
      • 2015-06-24
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 2014-03-18
      相关资源
      最近更新 更多