我正在使用Neo4j OGM版本2.1.3。
我曾经对特定属性有一个@Index (unique=true, primary=true)
,当session.save(obj)
被执行时,事情运行良好。
它能够正确地执行基于唯一约束的CREATE
或MERGE
。但是,现在我需要一个跨越 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 创建功能请求。