我有以下两种方法:
@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
方法的行为。
答案 0 :(得分:0)
您从数据源创建另一个连接,意味着您有另一个具有数据库的会话,因此此连接具有其事务和提交/回滚孤立