以下HQL查询到EclipseLink兼容JPQL的翻译是什么:
select p from NameList list, Person p
where p.name in elements(list.names)
(这只是从here获取的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 );])
我可以用另一个连接来解决这个问题,但是有更紧凑的东西吗?
答案 0 :(得分:3)
我找到了解决方案:
select p from NameList list, Person p
where p.name member of list.names
此解决方案符合JPA 2标准。