带有Spring数据查询的Neo4j

带有Spring数据查询的Neo4j,neo4j,spring-data,spring-data-neo4j,spring-data-graph,Neo4j,Spring Data,Spring Data Neo4j,Spring Data Graph,我不能理解我做错了什么。我能够使用硬编码的值在neo4j控制台上运行查询 我正在尝试对我的存储库类执行以下查询: @Query("START user=node({0}) \n" + "MATCH (anotherUser) \n" + "WHERE NOT (anotherUser<-[:MATCHES]-user) AND NOT user = anotherUser \n" + "RETURN anotherUser") Iterabl

我不能理解我做错了什么。我能够使用硬编码的值在neo4j控制台上运行查询

我正在尝试对我的存储库类执行以下查询:

@Query("START user=node({0}) \n" +
        "MATCH (anotherUser) \n" +
        "WHERE NOT (anotherUser<-[:MATCHES]-user) AND NOT user = anotherUser \n" +
        "RETURN anotherUser")
Iterable<User> findMatchesForUser(User user);
@Query(“开始用户=节点({0})\n”+
“匹配(另一个用户)\n”+

“WHERE NOT(另一个用户我能够通过以下查询得到相同的结果:

@Query("START n=node({0}), a=node(*) \n" +
        "MATCH (n)-[r?:MATCHES]->(a) \n" +
        "WHERE has(a.__type__) AND r IS NULL AND a <> n \n" +
        "RETURN a");
Iterable<User> findMatchesForUser(User user);
@Query(“START n=node({0}),a=node(*)\n”+
“匹配(n)-[r?:匹配]->(a)\n”+
“其中有(a.。\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu+
“返回a”);
Iterable findMatchesForUser(用户用户);

出于我仍然无法真正理解的原因,我必须添加has(a.类型)以使查询正常工作,否则它将抛出“无法写入JSON:'type'属性找不到NodeImpl#0”“尝试序列化时。

您使用哪个版本?Spring 3.2、Spring-Data-neo4j 2.3.2和neo4j 1.8。我一直无法运行neo4j 2.0,我被“不受支持的主要.次要版本51.0”所困扰。”在构建过程中,我决定暂时坚持使用1.8。如果2.0不是一个选项,我强烈建议升级到Neo4j 1.9。为什么坚持使用1.8?迁移应该不会太难,如果有的话。这是一个密码错误,因此在执行查询时,不知何故您的查询会被破坏。也许您可以启用密码查询日志记录。我认为设置
或g、 neo4j.cypher
调试帮助,但这是一个非常低效的查询,不会这样做。@MichaelHunger,你认为我可以做些什么来提高查询性能?
@Query("START n=node({0}), a=node(*) \n" +
        "MATCH (n)-[r?:MATCHES]->(a) \n" +
        "WHERE has(a.__type__) AND r IS NULL AND a <> n \n" +
        "RETURN a");
Iterable<User> findMatchesForUser(User user);