在java中为neo4j节点生成j uuid的最佳方法是什么

Pra*_*hal 5 java neo4j

Neo4j不建议使用node id存储在第三方系统中以供以后引用。

  1. 那么在java中为neo4j节点生成uuid的最佳方法是什么?
  2. 目前我正在使用 UUID.randomUUID(); 生成uuid。如果我使用 UUID.randomUUID() 会对 Neo4j 搜索性能产生影响吗?

小智 7

现在 Cypher 有一个randomUUID原生函数,请参阅https://neo4j.com/docs/cypher-manual/current/functions/scalar/#functions-randomuuid

函数 randomUUID() 返回随机生成的通用唯一标识符 (UUID),也称为全局唯一标识符 (GUID)。这是一个 128 位值,具有强有力的唯一性保证。

例子:

RETURN randomUUID() AS uuid
Run Code Online (Sandbox Code Playgroud)


Wil*_*yon 5

确实,您不应该在外部系统中引用内部 ID,因为内部 ID 不稳定。

生成 UUID 的一种选择是使用apoc 过程库apoc.create.uuid中提供的函数。例如:

CREATE (p:Person)
SET p.name = "Bob",
    p.uuid = apoc.create.uuid()
Run Code Online (Sandbox Code Playgroud)

有关用户定义过程和函数的更多信息,请参阅此博客文章。