【问题标题】:Hibernate createQuery() for Date_addDate_add 的休眠 createQuery()
【发布时间】:2018-10-10 09:19:54
【问题描述】:

我正在尝试在休眠 HSQL 中实现以下 SQL 查询。我必须传递一个动态值 'delivery' 而不是值 '7'。

SELECT quote_key , delivery_date 
  FROM Orders 
  WHERE delivery_date >= DATE_ADD(now(), INTERVAL '-7' DAY); 

DAO 层:

String sql = " FROM Orders where deliveryDate >= DATE_ADD(now(), INTERVAL -(:delivery) " + " DAY)";

Query query = session.createQuery(sql);
query.setParameter("delivery", delivery);
List<Orders> mergedData = query.list();

我收到以下错误:

意外令牌:DAY

对于我尝试的任何语法。有没有办法使用 HSQL 本身而不是 Native SQL 来实现它?

【问题讨论】:

    标签: mysql hibernate hsqldb dateadd createquery


    【解决方案1】:

    您可以使用CREATE FUNCTION syntax 创建一个将采用该整数参数的函数,创建您自己的方言并使用JPQL function('myfunction', :param),如in this article 所述。

    否则您将不得不使用本机 SQL。

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 1970-01-01
      • 2011-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多