JPA事务中的jdbc自动提交功能

时间:2016-07-04 11:18:48

标签: java jdbc transactional

我有以下两种方法:

@org.springframework.transaction.annotation.Transactional
public boolean creditAccount(String accountId)
{
      LogUtility.logTxn(accountId);
      // Do somethings 
}

public class LogUtility
{
    javax.sql.DataSource dataSource; // this property initialized in static block of intilalizing LogUtility class

    public logTxn(String account)
    {
       java.sql.Connection conn = dataSource.getConnection();
       conn.setAutoCommit(true);
       CallableStatement cs = conn.prepareCall(/*name of a oracle package and its procedures*/);
       cStmt.execute();   
    }
}

我想了解creditAccount方法调用LogUtility.logTxn方法后发生异常(此处:// Do somethings)然后LogUtility.logTxn方法提交或回滚? 我知道在这种情况下creditAccount方法会被回滚,但我不知道logTxn方法的行为。

1 个答案:

答案 0 :(得分:0)

您从数据源创建另一个连接,意味着您有另一个具有数据库的会话,因此此连接具有其事务和提交/回滚孤立