hibernate createquery()用于date\u add

5vf7fwbs  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(359)

我试图在hibernate 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();

我得到以下错误:
意外标记:天
我尝试过的任何语法。有没有办法用hsql本身而不是原生sql来实现它?

uplii1fm

uplii1fm1#

您可以使用create function语法来创建一个函数,该函数将接受该整数参数,创建您自己的方言并使用jpql function('myfunction', :param) ,如本文所述。
否则,您将不得不使用本机sql。

相关问题