在我的实际应用中,我有没有JDBC的autoCommit = false设置一个DBCP连接池。 它似乎有默认的自动提交=真。 这可能是一个错误,但我想了解更改这个参数的影响。
我使用的是: - 弹簧与@Transactional注释 - Spring Batch的使用JDBC读者和作家,使用JdbcTemplate的最终定制的微进程
我想知道,如果Spring并设置自动提交= FALSE当前连接的,如果它是由事务管理器处理事务的上下文。 它覆盖默认设置? 因为在我看来,它是有道理这样做。
在我的实际应用中,我有没有JDBC的autoCommit = false设置一个DBCP连接池。 它似乎有默认的自动提交=真。 这可能是一个错误,但我想了解更改这个参数的影响。
我使用的是: - 弹簧与@Transactional注释 - Spring Batch的使用JDBC读者和作家,使用JdbcTemplate的最终定制的微进程
我想知道,如果Spring并设置自动提交= FALSE当前连接的,如果它是由事务管理器处理事务的上下文。 它覆盖默认设置? 因为在我看来,它是有道理这样做。
PlatformTransactionManager的是一个接口,所以我不会毯说,所有实现设置自动提交=假,但最常见的实现(DataSourceTransactionManager对象)不设置自动提交=假。 看到从doBegin方法下面的代码片断:
if (con.getAutoCommit()) {
txObject.setMustRestoreAutoCommit(true);
if (logger.isDebugEnabled()) {
logger.debug("Switching JDBC Connection [" + con + "] to manual commit");
}
con.setAutoCommit(false);
}
txObject.getConnectionHolder().setTransactionActive(true);
现在,当你说,它可以完美的做到这一点,或者你不会有回滚段激活回滚。