【问题标题】:Parameterized Cypher query and Neo4J JDBC prepared statements参数化 Cypher 查询和 Neo4J JDBC 准备语句
【发布时间】:2016-08-30 13:43:47
【问题描述】:

我有一个与此类似的参数化密码查询 -

FOREACH (rel IN {relations} | 
match (src:Biz_Table{db_name:rel.sdb_name, table_name:rel.stname}),(dest:Biz_Table{db_name:rel.ddb_name, table_name:rel.dtname})

create (src) - [:Connects { name:rel.name, values:[rel.values],
rel.key_field1:rel.key_field1_values, rel.key_field2:rel.key_field2_values}] -> (dest) )

现在我想从 JDBC 准备语句中传递 {relations} 变量 - 这将是我要循环的对象数组。

【问题讨论】:

  • 将您的代码放入代码块中,使其更易于阅读。它将帮助您更快地得到答案。

标签: jdbc neo4j cypher neo4j-java-api


【解决方案1】:

使用地图列表的preparedstatement.setObject

【讨论】:

  • 嗨迈克尔,感谢您的回复。每张地图在这里代表什么?为什么我们需要发送列表>你能详细说明吗?
  • 还有,地图中每个条目的关键是什么?
  • 嗨迈克尔,你的建议奏效了。我将每个项目添加为地图并将它们添加到列表中。但是我的查询在使其完美运行之前几乎不需要修改。更改为 - ` WITH {1} 作为关系展开关系作为 rel 匹配 (src:Biz_Table{db_name:rel.sdb_name, table_name:rel.stname}), (dest:Biz_Table{db_name:rel.ddb_name, table_name:rel.dtname }) \ create (src) - [a:Connects { name:rel.name, values:[rel.values], key_field1:rel.key_field1, key_field1_value:rel.key_field1_value, key_field2:rel.key_field2, key_field2_value:rel.key_field2_value }] -> (dest) `
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-30
  • 1970-01-01
  • 1970-01-01
  • 2010-10-19
相关资源
最近更新 更多