尝试在 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