如何在 neo4j ogm 中实现复合约束或等效的"is node key"?



我正在使用Neo4j OGM版本2.1.3。

我曾经对特定属性有一个@Index (unique=true, primary=true),当session.save(obj)被执行时,事情运行良好。

它能够正确地执行基于唯一约束的CREATEMERGE。但是,现在我需要一个跨越 3 个不同属性的复合约束。

由于我找不到使用 OGM 指定复合索引的方法,因此我在代码之外的这 3 个属性/属性上指定了一个IS NODE KEY约束(直接在 Neo4j shell 上执行 CYPHER(。

现在,在我尝试执行session.save(domainObj)时添加关系后,我现在得到一个Node already exists with ...异常,因为 ogm 尝试执行CREATE查询而不是MERGE

如何向 OGM 提供提示,不要构造CREATE而是构造MERGE

或者换句话说,有没有办法在 OGM 中指定复合约束,以便我可以解决这个问题?

不幸的是,目前不支持此功能(在neo4j-ogm 2.1.x和即将推出的3.0.0中均不支持(。

请随时在 https://github.com/neo4j/neo4j-ogm/issues 创建功能请求。

相关内容

最新更新