gpt4 book ai didi

java - Spring Data Neo4j 如何开始事务工作?

转载 作者:行者123 更新时间:2023-12-04 04:43:40 24 4
gpt4 key购买 nike

我有一个理解问题。我无法理解 Neo4jTemplate 中的数据库操作(如“getOrCreateNode()”)如何属于周围的事务。它是如何实现的? Neo4jTemplate 会在多线程环境中共享吗?我看不到交易的不同成员资格。我会理解操作是否直接在事务对象中(例如 tx.getOrCreateNode())。

@Service
public class TestService {

@Autowired
private Neo4jTemplate template;

public void save(IndexedTriple triple) {
GraphDatabase gdb = template.getGraphDatabase();
Transaction tx = gdb.beginTx();

Node subject = gdb.getOrCreateNode()
...

tx.success();
tx.finish();
}
}

提前致谢。

最佳答案

以下摘自 reference documentation几乎总结了它。使用 spring 事务管理器而不是使用 Neo4j 事务,让 spring 负责划分。此外,事务管理是完全线程安全的。对于你,我建议使用 @Transactional注释。如果已经有一个现有的事务,那么 spring 也会加入该现有的事务。

Transactions

The Neo4jTemplate provides implicit transactions for some of its methods. For instance save uses them. For other modifying operations please provide Spring Transaction management using @Transactional or the TransactionTemplate.

关于java - Spring Data Neo4j 如何开始事务工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18528142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com