Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringDataNeo4j如何开始事务工作?_Java_Neo4j_Spring Data_Spring Data Neo4j - Fatal编程技术网

Java SpringDataNeo4j如何开始事务工作?

Java SpringDataNeo4j如何开始事务工作?,java,neo4j,spring-data,spring-data-neo4j,Java,Neo4j,Spring Data,Spring Data Neo4j,我有一个理解问题。我无法理解Neo4jTemplate中的数据库操作(如“getOrCreateNode()”)如何属于周围的转换。它是如何实施的?Neo4jTemplate将在多线程环境中共享?我看不到该交易的明确成员资格。我可以理解操作是否直接在事务对象中(例如,tx.getOrCreateNode()) 提前感谢。下面的摘录对其进行了总结。使用spring事务管理器而不是使用Neo4j事务,让spring负责划分。此外,事务管理是完全线程安全的。对于您,我建议使用@Transactiona

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


提前感谢。

下面的摘录对其进行了总结。使用spring事务管理器而不是使用Neo4j事务,让spring负责划分。此外,事务管理是完全线程安全的。对于您,我建议使用
@Transactional
注释。如果已经存在一个现有事务,那么spring也会加入该现有事务

交易

Neo4jTemplate为其部分应用程序提供隐式事务 方法。例如,save使用它们。用于其他修改操作 请使用
@Transactional
交易模板

@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();
  }
}