neo4j java 驱动程序发生错误时会自动回滚事务吗?

问题描述 投票:0回答:1

我正在运行以下代码来检查是否发生回滚调用。但是,我收到此错误:

Could not rollback transaction  org.neo4j.driver.exceptions.ClientException: Can't rollback, transaction has been rolled back
    at org.neo4j.driver.internal.util.Futures.blockingGet(Futures.java:143)
    at org.neo4j.driver.internal.InternalTransaction.rollback(InternalTransaction.java:46)

是否无法手动回滚事务?

Driver driver = GraphDatabase.driver(neo4jUrl, AuthTokens.basic(neo4jUsername,neo4jPassword));
Session session = driver.session();

Transaction tx = null;
try{
    tx = session.beginTransaction();

    String insertQuery = "CREATE(n:Person{id:8,name:'Person6',age:26}) ";
    tx.run(insertQuery);

    String delQuery = "MATCH(n:Person{id:3}) DELETE n";
   // String delQuery = "MATCH(n:Person{id:2}) DELETE n";
    tx.run(delQuery);

    tx.commit();
    System.out.println("Trnx committed");
}catch(Exception e){
    tx.rollback();
    System.out.println("Transaction rolled back.");
} finally {
    if (session != null) session.close();
    if (driver != null) driver.close();
}
java neo4j transactions neo4j-driver
1个回答
0
投票

您可以通过

transaction.isOpen()
查看。

© www.soinside.com 2019 - 2024. All rights reserved.