Hibernate createQuery() для Date_add

Я пытаюсь реализовать следующий запрос SQL в hibernate HSQL. Вместо значения '7' мне нужно передать динамическое значение 'delivery'.

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, а не Native SQL?

1 ответ

Вы можете использовать синтаксис CREATE FUNCTION для создания функции, которая будет принимать этот целочисленный параметр, создавать свой собственный диалект и использовать JPQL function('myfunction', :param), как описано в этой статье.

В противном случае вам придется использовать собственный SQL.

Другие вопросы по тегам