我在Grails中使用依赖neo4j-rest-graphdb:2.0.1
使用Neo4j 2.1.5,我使用以下命令查询我的数据库
RestAPI restapi = new RestAPIFacade("http://localhost:7474/db/data")
RestCypherQueryEngine rcqer=new RestCypherQueryEngine(restapi)
我创建了一个参数列表
Map<String, String> paramVal = new HashMap<>(); paramVal.put('limit', 10); paramVal.put('skip', 0); paramVal.put('order', 'name');
我的查询如下所示
String query = "match (c:MyLabel) return id(c) as Id, c.name as name skip ${param}.skip limit ${param}.limit;
像这样执行查询
result = rcqer.query(query,org.neo4j.helpers.collection.MapUtil.map("param",paramVal))"
这会显示错误Invalid input '.': expected whitespace, Limit, LOAD CSV,.....
但是,当参数仅在where
子句中使用时,效果很好。此外,仅使用 for order by
子句时,结果也不正常,并且没有任何错误。
请让我知道缺少什么或是否有限制。提前谢谢。
我不使用库的特定部分,但我希望您不需要直接引用param
,因为这就是{}
语法的用途(没有美元),这将使您的查询:
String query = "match (c:MyLabel) return id(c) as Id, c.name as name skip {skip} limit {limit}