Neo4j CypherQuery在JavaEmbedded中返回空结果,但在Neoclipse中返回正确结果

Neo4j CypherQuery在JavaEmbedded中返回空结果,但在Neoclipse中返回正确结果,neo4j,resultset,cypher,graph-databases,Neo4j,Resultset,Cypher,Graph Databases,我对密码查询有一个奇怪的问题。查询在Neoclipse中运行良好,并返回正确的结果。但在java嵌入式模式下,结果是空的。我想不出这个问题。java embedded或任何类似的语言中是否有查询字符限制 以下是密码查询: START typeNode6=node(6) , containerNode=node(9) , typeNode35=node(35) , typeNode15=node(15) , typeNode18=node(18)

我对密码查询有一个奇怪的问题。查询在Neoclipse中运行良好,并返回正确的结果。但在java嵌入式模式下,结果是空的。我想不出这个问题。java embedded或任何类似的语言中是否有查询字符限制

以下是密码查询:

    START 
    typeNode6=node(6) ,
    containerNode=node(9) ,
    typeNode35=node(35) ,
    typeNode15=node(15) ,
    typeNode18=node(18) ,
    typeNode33=node(33) 
    MATCH (node6)-[:TYPE]->(typeNode6) ,
    (containerNode)-[:CONTAINS*]->(node6) ,
    (node35)-[:TYPE]->(typeNode35) ,
    (node6)-[:`http://www.test.test/types/s3/media#actors`]->(node35) ,
    (node15)-[:TYPE]->(typeNode15) , 
    (node35)-[:`http://www.test.test/types/s3/media#impersonatedBy`]->(node15) ,
    (node18)-[:TYPE]->(typeNode18) , 
    (node15)-[:`http://www.test.test/types/common#namedBy`]->(node18) ,
    (node33)-[:TYPE]->(typeNode33) , 
    (node6)-[:`http://www.test.test/types/s3/media#runtime`]->(node33)  
    WHERE 
    node6.`http://www.test.test/types/s3/media#releaseYear`! = 1988 
AND node18.`http://www.test.test/types/common#firstName`! = 'Robert' 
AND node18.`http://www.test.test/types/common#lastName`! = 'Davi' 
AND node33.`http://www.test.test/types/common#intValue`! = 131 RETURN node6";
下面是我的java测试类:

@Test
    public void queryExecute() {
        ExecutionResult result, result2;
        ExecutionEngine engine;
        String query = "START typeNode6=node(6) ,containerNode=node(9) ,typeNode35=node(35) ,typeNode15=node(15) ,typeNode18=node(18) MATCH (node6)-[:TYPE]->(typeNode6) ,(containerNode)-[:CONTAINS*]->(node6) ,(node35)-[:TYPE]->(typeNode35) , (node6)-[:`http://www.test.test/types/s3/media#actors`]->(node35) ,(node15)-[:TYPE]->(typeNode15) , (node35)-[:`http://www.test.test/types/s3/media#impersonatedBy`]->(node15) ,(node18)-[:TYPE]->(typeNode18) , (node15)-[:`http://www.test.test/types/common#namedBy`]->(node18)  WHERE node18.`http://www.test.test/types/common#firstName`! = 'Robert' AND node18.`http://www.test.test/types/common#lastName`! = 'Davi' RETURN node6";
        String query2 = "START typeNode6=node(6) ,containerNode=node(9) ,typeNode35=node(35) ,typeNode15=node(15) ,typeNode18=node(18) ,typeNode33=node(33) MATCH (node6)-[:TYPE]->(typeNode6) ,(containerNode)-[:CONTAINS*]->(node6) ,(node35)-[:TYPE]->(typeNode35) , (node6)-[:`http://www.test.test/types/s3/media#actors`]->(node35) ,(node15)-[:TYPE]->(typeNode15) , (node35)-[:`http://www.test.test/types/s3/media#impersonatedBy`]->(node15) ,(node18)-[:TYPE]->(typeNode18) , (node15)-[:`http://www.test.test/types/common#namedBy`]->(node18) ,(node33)-[:TYPE]->(typeNode33) , (node6)-[:`http://www.test.test/types/s3/media#runtime`]->(node33)  WHERE node6.`http://www.test.test/types/s3/media#releaseYear`! = 1988 AND node18.`http://www.test.test/types/common#firstName`! = 'Robert' AND node18.`http://www.test.test/types/common#lastName`! = 'Davi' AND node33.`http://www.test.test/types/common#intValue`! = 131 RETURN node6";
        engine = new ExecutionEngine(svrInstance.getNeoGraphdb());
        result = engine.execute(query);
        result2 = engine.execute(query2);
        Assert.assertNotNull(result);

        System.out.println("============== CYPHER QUERY TEST ==============");
        System.out.println("uncomplicated: ");
        System.out.println(result.toString());
        System.out.println("complicated: ");
        System.out.println(result2.toString());
        System.out.println("============== CYPHER QUERY TEST ==============");

    }
这是java控制台的输出:

============== CYPHER QUERY TEST ==============
uncomplicated: 
+---------------------------------------------------------------------------------------------------------------------------------------------------+
| node6                                                                                                                                             |
+---------------------------------------------------------------------------------------------------------------------------------------------------+
| Node[7]{http://www.test.test/types/common#id:"movie_1",http://www.test.test/types/s3/media#releaseYear:1988,type:"instance",instanceId:"movie_1"} |
+---------------------------------------------------------------------------------------------------------------------------------------------------+
1 row
138 ms

complicated: 
+-------+
| node6 |
+-------+
+-------+
0 row
4 ms

============== CYPHER QUERY TEST ==============
两个查询(在java中)应该返回相同的结果(至少在Neoclipse中)。区别在于“复杂查询”得到了更多的“WHERE”条件

顺便说一下,查询是从java动态生成的,但这不应该是问题所在,因为它们在Neoclipse中工作。(我总是使用相同的数据库位置。)

谢谢你的帮助!
您好Max

因此,我可以看出,这两个查询在Neo4jServer 1.7.2版中都可以正常工作。
版本1.8.2一定有问题

您在Neoclipse/Java embedded中使用的neo4j版本是什么?在Java embedded中:`org.neo4j.app neo4j server 1.8.2 org.neo4j.app neo4j server static web 1.8.2`和Neoclipse 1.8您能发布一个展示此问题的Java小示例项目以进行测试吗?你好,Peter,谢谢你的帮助。有没有机会私下分享这个项目?我不能在这里发布测试数据库。我用必要的代码建立了一个MavenProject,并包含了测试数据库。欢迎使用1.9.RC1版本的MaxAnd,它也在工作!因此,问题似乎在下一版本中得到了解决。