在neo4j中创建一个任意标识符

时间:2017-09-19 20:42:06

标签: java spring neo4j spring-data spring-data-neo4j

背景

我有一个neo4j和spring数据框架。

我有一个NameType.java,它扩展了我的GraphType.java。

我的GraphType.java有Long id,我的NameType有string name

我的目标是最终使String name充当外部所有事物(REST等)的UUID。

问题

Long id会自动变为@GraphId。我想将NameType中的String name变为任意ID,并且同时使用Unique和Indexed。我希望我可以按照文档中的建议对@Id进行注释:https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/#__id_arbitrary_identifier

我是对的吗?这是解决这个问题的正确方法吗?

1 个答案:

答案 0 :(得分:1)

您可以将@Id用于您的uuid属性,这是@Index(primary = true, unique = true)的替代,它将在调用时用于查找

  • repository.findOne("uuid")
  • session.load(MyType.class, "uuid")

AutoIndexManager将为此创建正确的唯一约束。

您仍然需要为本机图ID(名称ID或@GraphId注释)设置长字段。

请参阅OGM docs了解正确的版本(您链接的SDN文档似乎包含较新版本的ogm文档)。