【问题标题】:Cypher: How to use special character relationships within foreachCypher:如何在 foreach 中使用特殊字符关系
【发布时间】:2016-02-28 13:47:19
【问题描述】:

使用时间树,如果我们要使用这种关系

(Root)-[:`2016`]-(Year)-[:`1`]-(Month)-[:`7`]-(Day)

来自 jdbc 客户端;有没有办法用 PreparedStatements 做到这一点?

如果不是怎么处理

foreach 

使用普通语句处理多年/月/天的部分?

感谢期待..

【问题讨论】:

  • 我不太确定您要达到什么目标... 2016 年的值最好建模为带有“年份”标签的节点上的字段。月和日也是如此

标签: neo4j cypher


【解决方案1】:

否,因为关系类型不能在 Cypher 语句中为 parameterized

您必须自己将查询构建为字符串,然后将其提供给 PreparedStatement(使用硬编码的关系类型)。这不好,因为您的查询不会被缓存。当您查询时间树时,同样适用。 Joe 在 cmets 中建议的方法是一种更好的方法。

如果您不想自己管理树,可以从 GraphAware 获得 timetree module

免责声明:我在 GraphAware 工作。

【讨论】:

  • 不客气。如果解决了您的问题,请采纳答案,谢谢
  • 谢谢@Joe,@Luanne。只是好奇,如果没有准备/缓存的损失,有机会通过硬编码 [:2015] 类型的关系来抵消,遍历/模式匹配应该比依赖像这样的过滤器快得多year.year = 2015
  • 最可靠的方法是根据代表性数据集对其进行测量
猜你喜欢
  • 2023-03-11
  • 2014-11-10
  • 2015-07-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-01
相关资源
最近更新 更多