问题背景:
1.database is neo4j 2.3.1, driver using jdbc;
2.db connection initialized as a class member, default is auto-commit(not changed); 为了避免插入重复,我在插入之前进行查询。程序停止后,发现重复项。为什么?
代码:
String query = "CREATE (n:LABEL {name:'jack'})";
System.out.println(query);
Statement stmt = dbConnection.createStatement();
stmt.executeUpdate(query);
stmt.close();发布于 2015-11-25 16:49:25
使用合并+唯一约束代替
发布于 2015-11-26 09:58:02
经过调试,我发现对于ne4j-jdbc(v2.1.4),默认的数据库连接事务级别是TRANSACTION_NONE,然后我将其设置为TRANSACTION_READ_COMMITTED,上面的问题就消失了。因此,我认为TRANSACTION_READ_COMMITTED将强制执行前一次插入,尽管这不是推荐的方式。有关隔离级别,请参阅:Difference between read commit and repeatable read
https://stackoverflow.com/questions/33908146
复制相似问题