You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ibatis.apache.org by cb...@apache.org on 2008/11/30 08:59:56 UTC

svn commit: r721781 - in /ibatis/trunk/java/ibatis-3: ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/ ibatis-3-compat/src/main/java/com/ibatis/sqlmap/...

Author: cbegin
Date: Sat Nov 29 23:59:55 2008
New Revision: 721781

URL: http://svn.apache.org/viewvc?rev=721781&view=rev
Log:
Added support for real autocommit

Modified:
    ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java
    ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java
    ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java
    ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/user/UserProvidedTransaction.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/TransactionFactory.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransaction.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransaction.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/SqlMapperBuilderTest.java
    ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/BaseExecutorTest.java

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/external/ExternalTransaction.java Sat Nov 29 23:59:55 2008
@@ -44,7 +44,7 @@
         connection.setAutoCommit(defaultAutoCommit);
       }
     }
-    executor = configuration.newExecutor(new JdbcTransaction(connection));
+    executor = configuration.newExecutor(new JdbcTransaction(connection,false));
   }
 
   public void commit(boolean required) throws SQLException, TransactionException {

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jdbc/JdbcTransaction.java Sat Nov 29 23:59:55 2008
@@ -36,7 +36,7 @@
     if (connection.getAutoCommit()) {
       connection.setAutoCommit(false);
     }
-    executor = configuration.newExecutor(new org.apache.ibatis.transaction.jdbc.JdbcTransaction(connection));
+    executor = configuration.newExecutor(new org.apache.ibatis.transaction.jdbc.JdbcTransaction(connection, false));
   }
 
   public void commit(boolean required) throws SQLException, TransactionException {

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/jta/JtaTransaction.java Sat Nov 29 23:59:55 2008
@@ -56,7 +56,7 @@
     if (connection.getAutoCommit()) {
       connection.setAutoCommit(false);
     }
-    executor = configuration.newExecutor(new JdbcTransaction(connection));
+    executor = configuration.newExecutor(new JdbcTransaction(connection,false));
   }
 
   public void commit(boolean required) throws SQLException, TransactionException {

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/user/UserProvidedTransaction.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/user/UserProvidedTransaction.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/user/UserProvidedTransaction.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-compat/src/main/java/com/ibatis/sqlmap/engine/transaction/user/UserProvidedTransaction.java Sat Nov 29 23:59:55 2008
@@ -12,7 +12,7 @@
   private Executor executor;
 
   public UserProvidedTransaction(Configuration configuration, Connection connection) {
-    this.executor = configuration.newExecutor(new JdbcTransaction(connection));
+    this.executor = configuration.newExecutor(new JdbcTransaction(connection,false));
   }
 
   public void commit(boolean required) throws SQLException, TransactionException {

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/SqlMapper.java Sat Nov 29 23:59:55 2008
@@ -8,6 +8,8 @@
 
   SqlSession openSession();
   
+  SqlSession openSession(boolean autoCommit);
+
   SqlSession openSession(Connection connection);
 
   Configuration getConfiguration();

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/api/defaults/DefaultSqlMapper.java Sat Nov 29 23:59:55 2008
@@ -28,9 +28,13 @@
   }
 
   public SqlSession openSession() {
+    return openSession(false);
+  }
+
+  public SqlSession openSession(boolean autoCommit) {
     try {
       Connection connection = dataSource.getConnection();
-      Transaction tx = transactionFactory.newTransaction(connection);
+      Transaction tx = transactionFactory.newTransaction(connection, autoCommit);
       Executor executor = configuration.newExecutor(tx);
       return new DefaultSqlSession(configuration, executor);
     } catch (SQLException e) {
@@ -39,7 +43,15 @@
   }
 
   public SqlSession openSession(Connection connection) {
-    Transaction tx = transactionFactory.newTransaction(connection);
+    boolean autoCommit;
+    try {
+      autoCommit = connection.getAutoCommit();
+    } catch (SQLException e) {
+      // Failover to true, as most poor drivers
+      // or databases won't support transactions
+      autoCommit = true;
+    }
+    Transaction tx = transactionFactory.newTransaction(connection, autoCommit);
     Executor executor = configuration.newExecutor(tx);
     return new DefaultSqlSession(configuration, executor);
   }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/TransactionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/TransactionFactory.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/TransactionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/TransactionFactory.java Sat Nov 29 23:59:55 2008
@@ -7,6 +7,6 @@
 
   void setProperties(Properties props);
     
-  Transaction newTransaction(Connection conn);
+  Transaction newTransaction(Connection conn, boolean autoCommit);
 
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransaction.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransaction.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransaction.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransaction.java Sat Nov 29 23:59:55 2008
@@ -1,17 +1,16 @@
 package org.apache.ibatis.transaction.jdbc;
 
-import org.apache.ibatis.transaction.Transaction;
-import org.apache.ibatis.api.exceptions.ExceptionFactory;
+import org.apache.ibatis.transaction.*;
 
-import java.sql.Connection;
-import java.sql.SQLException;
+import java.sql.*;
 
 public class JdbcTransaction implements Transaction {
 
-  private Connection connection;
+  protected Connection connection;
 
-  public JdbcTransaction(Connection connection) {
+  public JdbcTransaction(Connection connection, boolean desiredAutoCommit) {
     this.connection = connection;
+    setDesiredAutoCommit(desiredAutoCommit);
   }
 
   public Connection getConnection() {
@@ -19,14 +18,48 @@
   }
 
   public void commit() throws SQLException {
-    connection.commit();
+    if (!connection.getAutoCommit()) {
+      connection.commit();
+    }
   }
 
   public void rollback() throws SQLException {
-    connection.rollback();
+    if (!connection.getAutoCommit()) {
+      connection.rollback();
+    }
   }
 
   public void close() throws SQLException {
+    resetAutoCommit();
     connection.close();
   }
+
+  protected void setDesiredAutoCommit(boolean desiredAutoCommit) {
+    try {
+      if (connection.getAutoCommit() != desiredAutoCommit) {
+        connection.setAutoCommit(desiredAutoCommit);
+      }
+    } catch (SQLException e) {
+      // Only a very poorly implemented driver would fail here,
+      // and there's not much we can do about that.
+      throw new TransactionException("Error configuring AutoCommit.  " +
+          "Your driver may not support getAutoCommit() or setAutoCommit(). " +
+          "Requested setting: " + desiredAutoCommit + ".  Cause: " + e, e);
+    }
+  }
+
+  protected void resetAutoCommit() {
+    try {
+      if (!connection.getAutoCommit()) {
+        // for compatibility we always use true, as some drivers don't like being left in "false" mode.
+        connection.setAutoCommit(true);
+      }
+    } catch (SQLException e) {
+      // Only a very poorly implemented driver would fail here,
+      // and there's not much we can do about that.
+      throw new TransactionException("Error configuring AutoCommit.  " +
+          "Your driver may not support getAutoCommit() or setAutoCommit(). Cause: " + e, e);
+    }
+  }
+
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/jdbc/JdbcTransactionFactory.java Sat Nov 29 23:59:55 2008
@@ -11,8 +11,8 @@
   public void setProperties(Properties props) {
   }
 
-  public Transaction newTransaction(Connection conn) {
-    return new JdbcTransaction(conn);
+  public Transaction newTransaction(Connection conn, boolean autoCommit) {
+    return new JdbcTransaction(conn, autoCommit);
   }
 
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransaction.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransaction.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransaction.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransaction.java Sat Nov 29 23:59:55 2008
@@ -1,6 +1,6 @@
 package org.apache.ibatis.transaction.managed;
 
-import org.apache.ibatis.transaction.Transaction;
+import org.apache.ibatis.transaction.*;
 
 import java.sql.Connection;
 import java.sql.SQLException;

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/main/java/org/apache/ibatis/transaction/managed/ManagedTransactionFactory.java Sat Nov 29 23:59:55 2008
@@ -9,12 +9,12 @@
 public class ManagedTransactionFactory implements TransactionFactory {
 
   public void setProperties(Properties props) {
-
   }
 
-  public Transaction newTransaction(Connection conn) {
-
+  public Transaction newTransaction(Connection conn, boolean autoCommit) {
+    // Silently ignores autocommit, as managed transactions are entirely
+    // controlled by an external manager.  It's silently ignored so that
+    // code remains portable between managed and unmanaged configurations.
     return new ManagedTransaction(conn);
   }
-
 }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/SqlMapperBuilderTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/SqlMapperBuilderTest.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/SqlMapperBuilderTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/builder/SqlMapperBuilderTest.java Sat Nov 29 23:59:55 2008
@@ -1,7 +1,6 @@
 package org.apache.ibatis.builder;
 
-import org.junit.Test;
-import org.junit.Assert;
+import org.junit.*;
 import org.apache.ibatis.BaseDataTest;
 import org.apache.ibatis.api.*;
 import org.apache.ibatis.io.Resources;
@@ -12,17 +11,23 @@
 import domain.blog.Author;
 
 public class SqlMapperBuilderTest extends BaseDataTest {
+  private static SqlMapper sqlMapper;
 
-  @Test
-  public void shouldBuildBlogMappers() throws Exception {
+  @BeforeClass
+  public static void setup() throws Exception {
     createBlogDataSource();
     final String resource = "org/apache/ibatis/builder/MapperConfig.xml";
     final Reader reader = Resources.getResourceAsReader(resource);
-    SqlMapper sqlMapper = new SqlMapperBuilder().build(reader);
+    sqlMapper = new SqlMapperBuilder().build(reader);
+  }
+
+  @Test
+  public void shouldBuildBlogMappers() throws Exception {
     SqlSession session = sqlMapper.openSession();
     try {
       List<Author> authors = session.selectList("com.domain.AuthorMapper.selectAllAuthors");
       Assert.assertEquals(2,authors.size());
+
     } finally {
       session.close();
     }

Modified: ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/BaseExecutorTest.java
URL: http://svn.apache.org/viewvc/ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/BaseExecutorTest.java?rev=721781&r1=721780&r2=721781&view=diff
==============================================================================
--- ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/BaseExecutorTest.java (original)
+++ ibatis/trunk/java/ibatis-3/ibatis-3-core/src/test/java/org/apache/ibatis/executor/BaseExecutorTest.java Sat Nov 29 23:59:55 2008
@@ -28,7 +28,7 @@
   public void shouldInsertNewAuthor() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     Author author = new Author(99, "someone", "******", "someone@apache.org", null, Section.NEWS);
     MappedStatement insertStatement = ExecutorTestHelper.prepareInsertAuthorMappedStatement(config);
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectOneAuthorMappedStatement(config);
@@ -45,7 +45,7 @@
   public void shouldSelectAllAuthorsAutoMapped() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectAllAuthorsAutoMappedStatement(config);
     List<Author> authors = executor.query(selectStatement, null, Executor.NO_ROW_OFFSET, Executor.NO_ROW_LIMIT, Executor.NO_RESULT_HANDLER);
     Assert.assertEquals(2, authors.size());
@@ -65,7 +65,7 @@
     Connection connection = ds.getConnection();
     config.setGeneratedKeysEnabled(true);
     try {
-      Executor executor = createExecutor(new JdbcTransaction(connection));
+      Executor executor = createExecutor(new JdbcTransaction(connection,false));
       Author author = new Author(-1, "someone", "******", "someone@apache.org", null, Section.NEWS);
       MappedStatement insertStatement = ExecutorTestHelper.prepareInsertAuthorMappedStatementWithAutoKey(config);
       MappedStatement selectStatement = ExecutorTestHelper.prepareSelectOneAuthorMappedStatement(config);
@@ -88,7 +88,7 @@
   public void shouldInsertNewAuthorByProc() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     Author author = new Author(97, "someone", "******", "someone@apache.org", null, null);
     MappedStatement insertStatement = ExecutorTestHelper.prepareInsertAuthorProc(config);
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectOneAuthorMappedStatement(config);
@@ -104,7 +104,7 @@
   public void shouldInsertNewAuthorUsingSimpleNonPreparedStatements() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     Author author = new Author(99, "someone", "******", "someone@apache.org", null, null);
     MappedStatement insertStatement = ExecutorTestHelper.createInsertAuthorWithIDof99MappedStatement(config);
     MappedStatement selectStatement = ExecutorTestHelper.createSelectAuthorWithIDof99MappedStatement(config);
@@ -121,7 +121,7 @@
   public void shouldUpdateAuthor() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     Author author = new Author(101, "someone", "******", "someone@apache.org", null, Section.NEWS);
     MappedStatement updateStatement = ExecutorTestHelper.prepareUpdateAuthorMappedStatement(config);
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectOneAuthorMappedStatement(config);
@@ -138,7 +138,7 @@
   public void shouldDeleteAuthor() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     Author author = new Author(101, null, null, null, null, null);
     MappedStatement deleteStatement = ExecutorTestHelper.prepareDeleteAuthorMappedStatement(config);
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectOneAuthorMappedStatement(config);
@@ -154,7 +154,7 @@
   public void shouldSelectDiscriminatedProduct() throws Exception {
     DataSource ds = createJPetstoreDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectDiscriminatedProduct(config);
     List<Map> products = executor.query(selectStatement, null, Executor.NO_ROW_OFFSET, Executor.NO_ROW_LIMIT, Executor.NO_RESULT_HANDLER);
     connection.rollback();
@@ -172,7 +172,7 @@
   public void shouldSelect10DiscriminatedProducts() throws Exception {
     DataSource ds = createJPetstoreDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectDiscriminatedProduct(config);
     List<Map> products = executor.query(selectStatement, null, 4, 10, Executor.NO_RESULT_HANDLER);
     connection.rollback();
@@ -191,7 +191,7 @@
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
     connection.setAutoCommit(false);
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectTwoSetsOfAuthorsProc(config);
     List<List> authorSets = executor.query(selectStatement, new HashMap() {
       {
@@ -214,7 +214,7 @@
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
     connection.setAutoCommit(false);
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectAuthorViaOutParams(config);
     Author author = new Author(102, null, null, null, null, null);
     executor.query(selectStatement, author, Executor.NO_ROW_OFFSET, Executor.NO_ROW_LIMIT, Executor.NO_RESULT_HANDLER);
@@ -230,7 +230,7 @@
   public void shouldFetchPostsForBlog() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectBlog = ExecutorTestHelper.prepareComplexSelectBlogMappedStatement(config);
     MappedStatement selectPosts = ExecutorTestHelper.prepareSelectPostsForBlogMappedStatement(config);
     config.addMappedStatement(selectBlog);
@@ -247,7 +247,7 @@
   public void shouldFetchOneOrphanedPostWithNoBlog() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectBlog = ExecutorTestHelper.prepareComplexSelectBlogMappedStatement(config);
     MappedStatement selectPost = ExecutorTestHelper.prepareSelectPostMappedStatement(config);
     config.addMappedStatement(selectBlog);
@@ -264,7 +264,7 @@
   public void shouldFetchPostWithBlogWithCompositeKey() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectBlog = ExecutorTestHelper.prepareSelectBlogByIdAndAuthor(config);
     MappedStatement selectPost = ExecutorTestHelper.prepareSelectPostWithBlogByAuthorMappedStatement(config);
     config.addMappedStatement(selectBlog);
@@ -284,7 +284,7 @@
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
     try {
-      Executor executor = createExecutor(new JdbcTransaction(connection));
+      Executor executor = createExecutor(new JdbcTransaction(connection,false));
       MappedStatement selectBlog = ExecutorTestHelper.prepareComplexSelectBlogMappedStatement(config);
       MappedStatement selectPosts = ExecutorTestHelper.prepareSelectPostsForBlogMappedStatement(config);
       config.addMappedStatement(selectBlog);
@@ -305,7 +305,7 @@
   public void shouldMapConstructorResults() throws Exception {
     DataSource ds = createBlogDataSource();
     Connection connection = ds.getConnection();
-    Executor executor = createExecutor(new JdbcTransaction(connection));
+    Executor executor = createExecutor(new JdbcTransaction(connection,false));
     MappedStatement selectStatement = ExecutorTestHelper.prepareSelectOneAuthorMappedStatementWithConstructorResults(config);
     List<Author> authors = executor.query(selectStatement, 102, Executor.NO_ROW_OFFSET, Executor.NO_ROW_LIMIT, Executor.NO_RESULT_HANDLER);
     executor.flushStatements();