From d83760bb39b57cb7ba1ab9d46e2d65b960011787 Mon Sep 17 00:00:00 2001 From: Michael Bayne Date: Wed, 1 Oct 2014 14:42:50 -0700 Subject: [PATCH] No auto-commit for tx connections. --- .../jdbc/DataSourceConnectionProvider.java | 35 +++++++++++-------- .../jdbc/StaticConnectionProvider.java | 2 +- 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/samskivert/jdbc/DataSourceConnectionProvider.java b/src/main/java/com/samskivert/jdbc/DataSourceConnectionProvider.java index cec67f97..8ec64ff8 100644 --- a/src/main/java/com/samskivert/jdbc/DataSourceConnectionProvider.java +++ b/src/main/java/com/samskivert/jdbc/DataSourceConnectionProvider.java @@ -41,19 +41,7 @@ public class DataSourceConnectionProvider implements ConnectionProvider public Connection getConnection (String ident, boolean readOnly) throws PersistenceException { - try { - Connection conn; - if (readOnly) { - conn = _readSource.getConnection(); - conn.setReadOnly(true); - } else { - conn = _writeSource.getConnection(); - } - return conn; - - } catch (SQLException sqe) { - throw new PersistenceException(sqe); - } + return getConnection(ident, readOnly, null); } // from ConnectionProvider @@ -83,7 +71,7 @@ public class DataSourceConnectionProvider implements ConnectionProvider public Connection getTxConnection (String ident) throws PersistenceException { // our connections are pooled, so we can just get them normally - return getConnection(ident, false); + return getConnection(ident, false, false); } // from ConnectionProvider @@ -112,6 +100,25 @@ public class DataSourceConnectionProvider implements ConnectionProvider // nothing doing, the caller has to shutdown the datasources } + protected Connection getConnection (String ident, boolean readOnly, Boolean autoCommit) + throws PersistenceException + { + try { + Connection conn; + if (readOnly) { + conn = _readSource.getConnection(); + conn.setReadOnly(true); + } else { + conn = _writeSource.getConnection(); + } + if (autoCommit != null) conn.setAutoCommit(autoCommit); + return conn; + + } catch (SQLException sqe) { + throw new PersistenceException(sqe); + } + } + protected String _url; protected DataSource _readSource, _writeSource; } diff --git a/src/main/java/com/samskivert/jdbc/StaticConnectionProvider.java b/src/main/java/com/samskivert/jdbc/StaticConnectionProvider.java index cc34495e..94232225 100644 --- a/src/main/java/com/samskivert/jdbc/StaticConnectionProvider.java +++ b/src/main/java/com/samskivert/jdbc/StaticConnectionProvider.java @@ -130,7 +130,7 @@ public class StaticConnectionProvider implements ConnectionProvider // from ConnectionProvider public Connection getTxConnection (String ident) throws PersistenceException { - return getMapping(ident, false).openConnection(ident, null); + return getMapping(ident, false).openConnection(ident, false); } // from ConnectionProvider