формирование hql-запроса - PullRequest
0 голосов
/ 09 июня 2010

Я хочу составить hql-запрос типа

select PLAN_ID from "GPIL_DB"."ROUTE_PLAN" where ASSIGNED_TO 
      in ('prav','sheet') and END_DATE > todays date

Я делаю так, но получаю ошибку при настройке параметров

s=('a','b');
Query q = getSession().createQuery("select planId from RoutePlan where assignedTo in REG ");
if(selUsers != null) {
   q.setParameter("REG", s);
}

где я делаю не так? Пожалуйста, помогите в выполнении этого запроса на основе hwl в пункте

1 Ответ

1 голос
/ 09 июня 2010

Вам необходимо назначить список параметров в запросе.Также обратите внимание на скобки вокруг параметра, потому что это запрос «in».

Query q = getSession()
      .createQuery("select planId from RoutePlan where assignedTo in (:REG) ");
if(selUsers != null) {
   q.setParameterList("REG", s);
}

Подробнее о том, как использовать параметры в HQL, можно прочитать в справке по спящему режиму , но этосоответствующий пример вставлен оттуда:

//named parameter list
List names = new ArrayList();
names.add("Izi");
names.add("Fritz");
Query q = sess.createQuery("from DomesticCat cat where cat.name in (:namesList)");
q.setParameterList("namesList", names);
List cats = q.list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...