我目前正在使用Neo4j作为嵌入式数据库的应用程序上工作。
我想知道如何确保单独的线程使用单独的事务。通常,我会将数据库操作分配给事务,但是我发现的代码示例不允许确保写操作使用单独的事务:
try (Transaction tx = graphDb.beginTx()) {
Node node = graphDb.createNode();
tx.success();
}
由于graphDB将被用作线程安全的单例,我真的不知道它如何工作...(例如,对于多个用户在单独的交易中创建购物 list 的情况)。
我要指出我误解了Neo4j中的事务处理概念,对此我将不胜感激。
致以最诚挚的问候,在此先感谢您,
奥立佛
最佳答案
如果由多个线程执行,则您发布的代码将在单独的事务中运行,每个线程一个事务。
实现此方法的方式(这是一种很常见的模式)是针对ThreadLocal存储事务状态(阅读Javadoc,一切都会变得很清楚)。
关于multithreading - 我如何在Neo4j中使用并行事务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29015780/