HQL到JPQL的问题

时间:2010-05-27 18:14:51

标签: hibernate hql eclipselink jpql

以下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 );])

我可以用另一个连接来解决这个问题,但是有更紧凑的东西吗?

1 个答案:

答案 0 :(得分:3)

我找到了解决方案:

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

此解决方案符合JPA 2标准。