jdbc JPA 事务中的自动提交功能
jdbc auto commit features inside a JPA transaction
我有如下牵引方法:
@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();
}
}
我想了解在调用 LogUtility.logTxn
方法(此处:// Do somethings
)之后 creditAccount
方法何时发生异常然后 LogUtility.logTxn
方法提交或回滚?
我知道 creditAccount
方法在这种情况下回滚,但我不知道 logTxn
方法的行为。
你从数据源创建了另一个连接,意味着你有另一个与数据库的会话,所以这个连接有它的事务和单独的提交/回滚
我有如下牵引方法:
@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();
}
}
我想了解在调用 LogUtility.logTxn
方法(此处:// Do somethings
)之后 creditAccount
方法何时发生异常然后 LogUtility.logTxn
方法提交或回滚?
我知道 creditAccount
方法在这种情况下回滚,但我不知道 logTxn
方法的行为。
你从数据源创建了另一个连接,意味着你有另一个与数据库的会话,所以这个连接有它的事务和单独的提交/回滚