我想知道是否有办法编写类似于下面的
的JPQL语句select o from entity1 o where (o.field1, o.field2) IN (select value1, value2 from ...)
类似的SQL查询在Oracle 10g中有效。但是,在eclipselink中,我收到了这个错误:
syntax error at [,].
Internal Exception: MismatchedTokenException(81!=84)
at org.eclipse.persistence.exceptions.JPQLException.syntaxErrorAt(JPQLException.java:362)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.handleRecognitionException(JPQLParser.java:301)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.addError(JPQLParser.java:242)
at org.eclipse.persistence.internal.jpa.parsing.jpql.JPQLParser.reportError(JPQLParser.java:359)
感谢任何帮助。
谢谢, KL
答案 0 :(得分:0)
JPA规范(1和2都没有)涵盖此类查询。但是,Hibernate确实支持它。
答案 1 :(得分:0)
您可以为此使用本机SQL查询,也可以使用连接而不是子选择。
EclipseLink在Expression查询中支持此功能,但目前不在JPQL中。 (虽然并非所有数据库都支持此功能)