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.