Hibernate запрос, где элемент в списке - PullRequest
4 голосов
/ 10 октября 2010

Может кто-нибудь предложить правильный синтаксис для предложения where, используя in применяется к списку? Следующий запрос в файле .hbm генерирует анализ Исключение:

<query name="Nutrient.findNutrients1">
    <![CDATA[from Nutrient as nutrient where nutrient.id in elements(?)]]>
</query>

Следует исключение:

PARSER.reportError (56) | строка 2:95: ожидал ИДЕНТ., нашел '?' SessionFactoryImpl. (395) | ошибка в именованном запросе: Nutrient.findNutrients1 org.hibernate.hql.ast.QuerySyntaxException: ожидал ИДЕНТ., нашел '?' рядом с линией 2, колонка 95 [от Nutrient as питательных веществ, где в элементы (?)

1 Ответ

4 голосов
/ 10 октября 2010

Удалите elements часть вашего запроса:

<query name="Nutrient.findNutrients1">
    <![CDATA[from Nutrient as nutrient where nutrient.id in (:ids)]]>
</query>

И вызвать его так:

List<Long> vals = Arrays.asList(1L, 2L);

Query q = session.getNamedQuery("Nutrient.findNutrients1");
q.setParameterList("ids", vals);
List<Nutrient> result = q.list();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...