【问题标题】:Neo4j Cypher Query "NOT IN" doesnt work, "IN" worksNeo4j Cypher 查询“NOT IN”不起作用,“IN”起作用
【发布时间】:2013-09-18 19:23:03
【问题描述】:

我尝试在我的 Java-Spring-Application 中创建一个密码查询,它应该回答“给所有未在 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

知道有什么问题吗?

【问题讨论】:

    标签: spring neo4j cypher


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我误解了NOT。我测试了它,我从 WHERE NOT(it.name IN({0})) 和 WHERE (it.name IN({0})) 得到相同的结果。非常混乱。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-03
    • 1970-01-01
    • 1970-01-01
    • 2014-09-16
    • 2016-06-15
    • 1970-01-01
    • 2012-07-28
    相关资源
    最近更新 更多