背景 我试图弄清楚如果我使用Spring Data将UUID添加到neo4j的正确方法。
我见过:
https://dzone.com/articles/assigning-uuids-neo4j-nodes
在这里,TransactionEventHandler
用于在必要时插入UUID。但是制作本教程的人并没有使用弹簧数据。
我也看过这个人的代码:https://github.com/spring-projects/spring-data-neo4j/blob/master/spring-data-neo4j/src/test/java/org/springframework/data/neo4j/web/domain/User.java他们似乎正在使用java的java.util.UUID,然后将其转换为字符串并将其用作字符串实体并将其编入索引并从那里开始。这似乎是最简单的方法。
但是,在文档中:https://docs.spring.io/spring-data/neo4j/docs/current/reference/html/他们似乎使用UUID作为AddUuidPreSaveEventListener
问题
我应该使用哪种方法添加UUID?
我可以添加
吗?...
import java.util.UUID;
import org.neo4j.ogm.annotation.Index;
import org.neo4j.ogm.annotation.typeconversion.Convert;
import org.neo4j.ogm.typeconversion.UuidStringConverter;
...
@Convert(UuidStringConverter.class)
@Index(unique = true, primary = true)
private UUID uuid = UUID.randomUUID();
...
到我的GraphType.java文件并调用它好吗?
注意:我对所有这些技术都很陌生,可能仍然缺乏经验甚至没有正确地提出这个问题。
注2: 我之前看过graphaware UUID库,它似乎确实是最新的,但我认为如果我使用spring数据,可能有一种首选的方法来制作UUID。
答案 0 :(得分:3)
您可以使用GraphAware Neo4j UUID库。
文档说:
GraphAware UUID 是一个透明地分配UUID的简单库 在图中新建节点和关系并确保 没有人可以(意外或有意)改变或删除它们。
只需将GraphAware Neo4j Framework和GraphAware Neo4j UUID .jar文件下载到/plugins
目录,修改neo4j.conf
文件中的few lines并重新启动Neo4j。之后,UUIDs
将被分配给在Neo4j图中创建的每个节点/关系。
这种方法不依赖于Spring或Spring Data。