Hibernate createQuery () для Date_add - PullRequest
       36

Hibernate createQuery () для Date_add

0 голосов
/ 10 октября 2018

Я пытаюсь реализовать следующий запрос 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 Ответ

0 голосов
/ 12 октября 2018

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

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

...