我正在执行cypher查询以在java中创建新节点。
CREATE(n:user {name:'ray',email:'@ something.com'})RETURN n
try (Transaction tx = server.graphDb1.beginTx())
{
try
{
Result result = server.graphDb1.execute(readString);
while (result.hasNext())
{
我遇到的问题是,执行后
执行此操作三次将导致
n:节点[0]; n:节点[1]; n:节点[2]
如果交易成功,一切都很棒。如果事务失败,则不会保存节点。 但节点ID是保留的。
接下来的三个请求将导致:
n:节点[3]; n:节点[4]; n:节点[5];
所以我有6个节点ID,但只有3个节点。有没有办法在事务失败后重置计数器?
答案 0 :(得分:2)
节点id(及其赋值机制)是一个完全内部的东西,你作为数据库用户根本不应该关心它。唯一要记住的是不要在第三方系统中的任何地方存储节点ID。
根据Neo4j版本,未使用的ID将在重启后重复使用 - 但不要依赖此实现细节。