Java neo4j insert使用jdbc,但无法在同一连接中立即查询

Java neo4j insert使用jdbc,但无法在同一连接中立即查询,java,jdbc,neo4j,Java,Jdbc,Neo4j,问题背景: 1.database is neo4j 2.3.1, driver using jdbc; 2.db connection initialized as a class member, default is auto-commit(not changed); 为了避免插入重复项,我在插入之前进行查询。程序停止后,发现重复项。为什么? 代码: 改为使用合并+唯一约束 如何“检查” 您必须签入同一个tx,还需要一个写锁 调试后,我发现对于Neo4jJDBC(v2.1.4),默

问题背景:

 1.database is neo4j 2.3.1, driver using jdbc;  
 2.db connection initialized as a class member, default is auto-commit(not changed); 
为了避免插入重复项,我在插入之前进行查询。程序停止后,发现重复项。为什么?

代码:

  • 改为使用合并+唯一约束
  • 如何“检查”
  • 您必须签入同一个tx,还需要一个写锁

  • 调试后,我发现对于Neo4jJDBC(v2.1.4),默认的db连接事务级别是transaction_NONE,然后我将其设置为transaction_READ_COMMITTED,上面的问题消失了。因此,我认为事务读取提交将强制上一次插入提交,尽管这不是推荐的方式。有关隔离级别,请参阅:

    我认为添加“使用准备好的语句”也很好;)嗨@Michael Hunger,谢谢。1.你能更具体地说“合并”吗?我知道“独特”是一种出路。2.只是觉得api有点混乱,如果你只是插入了一条记录,为什么不能在同一个连接上查询它?(我试过,如果每次插入都使用一个新连接,可以查询出来,因此没有重复)
    String query = "CREATE (n:LABEL {name:'jack'})";
    System.out.println(query);
    Statement stmt = dbConnection.createStatement();
    stmt.executeUpdate(query);
    stmt.close();