背景
我有一个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
我是对的吗?这是解决这个问题的正确方法吗?
答案 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文档)。