Вопрос с HQL на JPQL - PullRequest
3 голосов
/ 27 мая 2010

Что означает перевод следующего HQL-запроса в JPQL, совместимый с EclipseLink:

select p from NameList list, Person p
where p.name in elements(list.names)

(это всего лишь разновидность примера запроса HQL, взятого из здесь )

В EclipseLink функция IN, похоже, не принимает пути свойств:

Internal Exception: NoViableAltException(36!=[693:1: inExpression[boolean not, Object left] returns [Object node] : (t= IN n= inputParameter | t= IN LEFT_ROUND_BRACKET (itemNode= inItem ( COMMA itemNode= inItem )* | subqueryNode= subquery ) RIGHT_ROUND_BRACKET );])

Возможно, я мог бы решить эту проблему с помощью другого объединения, но есть ли что-то более компактное?

1 Ответ

3 голосов
/ 27 мая 2010

Я нашел решение:

select p from NameList list, Person p
where p.name member of list.names

Это решение соответствует стандарту JPA 2.

...