尝试在 JPQL 查询中使用 IN 运算符时出现问题
Issue when trying to use the IN operator in a JPQL query
以下查询:
SELECT P FROM Project P WHERE :currentUser IN(P.assignedUsers)
抛出以下错误:
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement: "....";
expected "NOT, EXISTS, INTERSECTS, SELECT, FROM";
我使用的 IN 运算符是错误的,还是我应该以不同的方式使用它。
Project.assignedUsers :是一个包含用户的列表(一对多关系)。
并且 currentUser 参数是一个有效的用户。
您不能为此目的使用隐式联接;您可能想使用 member of
运算符:
SELECT P FROM Project P WHERE :currentUser MEMBER OF P.assignedUsers
以下查询:
SELECT P FROM Project P WHERE :currentUser IN(P.assignedUsers)
抛出以下错误:
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement: "...."; expected "NOT, EXISTS, INTERSECTS, SELECT, FROM";
我使用的 IN 运算符是错误的,还是我应该以不同的方式使用它。
Project.assignedUsers :是一个包含用户的列表(一对多关系)。 并且 currentUser 参数是一个有效的用户。
您不能为此目的使用隐式联接;您可能想使用 member of
运算符:
SELECT P FROM Project P WHERE :currentUser MEMBER OF P.assignedUsers