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

时间:2013-09-14 02:10:15

标签: 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);

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

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

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

知道出了什么问题吗?

1 个答案:

答案 0 :(得分:15)

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

WHERE NOT(it.name IN({0}))