我正在尝试使用来自Spring数据neo4j的类似运算符在neo4j Cypher Query中传递参数。请告诉我正确的方法来传递参数,如操作..请帮助我。
Map<String, Object> map = new HashMap<String, Object>();
map.put(queryAfterSubstutuet(collabVo),
groupIdAfterSubstituet(collabVo));
map.put("display_name",input);
Result<Map<String, Object>> result = neoOperation.query(
collabVo.getSearchQuery(), map);
它是我的getSearchQuery
MATCH (n:OrganizationUnit {id:{class}})-[r:PART]-(c)-[r1:STUDENTROLE]-(f) where f.firstName =~"{display_name}.*" RETURN f
但这引发了错误
Caused by: java.util.regex.PatternSyntaxException: Illegal repetition
[STDERR] {display_name}.*
[STDERR] at java.util.regex.Pattern.error(Pattern.java:1924)
[STDERR] at java.util.regex.Pattern.closure(Pattern.java:3104)
[STDERR] at java.util.regex.Pattern.sequence(Pattern.java:2101)
[STDERR] at java.util.regex.Pattern.expr(Pattern.java:1964)
[STDERR] at java.util.regex.Pattern.compile(Pattern.java:1665)
[STDERR] at java.util.regex.Pattern.<init>(Pattern.java:1337)
[STDERR] at java.util.regex.Pattern.compile(Pattern.java:1022)
如果将查询更改为以下形式:
MATCH (n:OrganizationUnit {id:{class}})-[r:PART]-(c)-[r1:STUDENTROLE]-(f)
where f.firstName =~{display_name} RETURN f
并添加到您的参数
map.put("display_name",input);
其中input包含完整模式(例如input =“ nameToMatch。*”),该模式应该有效。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句