Neo4j Cypher查询"NOT IN"不起作用,"IN"有效

Pat*_*ick 7 spring neo4j cypher

我尝试在我的Java-Spring-Application中创建一个cypher-query,它应该回答"给所有未在item.nameList中创建项目的员工"的问题:

@Query("START it=node:__types__(className = 'de.my.domain.ItemCl') MATCH empl-[r:CREATE]->it WHERE (it.name NOT IN ({0})) RETURN DISTINCT empl")
List<Employee> findAllEmployeesWhoNeverCreatedItemFromItemNameList(List<String> itemNameList);
Run Code Online (Sandbox Code Playgroud)

此查询提供"org.springframework.dao.InvalidDataAccessResourceUsageException"并将"NOT"标记为失败.

如果我在没有NOT的情况下尝试相同的查询("给所有在item.nameList中创建项目的员工",查询会做它应该做的事情.

在这篇帖子中,Peter Neubauer告诉我们这个"NOT IN"存在于cypher中:https://groups.google.com/forum/#!topic / neo4j /_PehVUfGaIA

知道什么是错的吗?

Eve*_*man 15

NOT 是一种否定,所以你必须这样做:

WHERE NOT(it.name IN({0}))
Run Code Online (Sandbox Code Playgroud)