Neo4j 如何将Java中的列表查询传递给cypher查询?
在这个查询中,我需要在cypher查询中将字符串的ArrayList传递给RE。如何修改此版本以使其适用于此目的Neo4j 如何将Java中的列表查询传递给cypher查询?,neo4j,cypher,Neo4j,Cypher,在这个查询中,我需要在cypher查询中将字符串的ArrayList传递给RE。如何修改此版本以使其适用于此目的 public String query_partial_match(String skuid, List<String> attrKey) { return "MATCH (s:Product {id:'" + skuid + "'})-[r]-> (o) " + "WHERE " +
public String query_partial_match(String skuid, List<String> attrKey) {
return "MATCH (s:Product {id:'" + skuid + "'})-[r]-> (o) " +
"WHERE " +
"(o:ExAttrs OR o:ProdAttrs) AND " +
"any(key in keys(o) WHERE key =~'(?i).*(" + attrKey + ").*') " +
"return o";
}
公共字符串查询\u部分\u匹配(字符串skuid,列表属性键){
返回“匹配(s:Product{id:'”+skuid+“})-[r]->(o)”+
“哪里”+
“(o:ExAttrs或o:ProdAttrs)和”+
“任意(输入键(o),其中键=~”(?i)。*(“+attrKey+”).*)”+
“返回o”;
}
我使用的是JDK1.8API和Neo4j本机API SDK。谢谢,为什么不将
skuid
和attrKey
作为参数传递,而不是手动构造查询?@stdob--根据您的建议,该查询会是什么样子?这是我当前动态生成查询,然后将查询字符串发送到“execute”方法的方法。我想您可能需要查看。在执行查询时,将参数映射与查询字符串一起传递。只需包含一个列表作为参数之一,并使用$paramName
样式语法访问查询中的参数即可。