Skip to content

Commit 0fb1db0

Browse files
committed
add: 支持配置psql是否支持supportSavePoint
1 parent a9cd08b commit 0fb1db0

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/org/nutz/dao/impl/sql/run/NutDaoRunner.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
import org.nutz.dao.DatabaseMeta;
1313
import org.nutz.dao.impl.DaoRunner;
1414
import org.nutz.dao.sql.DaoStatement;
15+
import org.nutz.lang.Configurable;
16+
import org.nutz.lang.util.NutMap;
1517
import org.nutz.log.Log;
1618
import org.nutz.log.Logs;
1719
import org.nutz.trans.Atom;
@@ -23,12 +25,14 @@
2325
* @author wendal
2426
*
2527
*/
26-
public class NutDaoRunner implements DaoRunner {
28+
public class NutDaoRunner implements DaoRunner, Configurable {
2729

2830
private static final Log log = Logs.get();
2931

3032
protected DataSource slaveDataSource;
3133

34+
protected boolean supportSavePoint = true;
35+
3236
public void run(final DataSource dataSource, final ConnCallback callback) {
3337
if (callback instanceof DaoInterceptorChain) {
3438
DaoInterceptorChain chain = (DaoInterceptorChain)callback;
@@ -99,7 +103,7 @@ protected void _runWithTransaction(Transaction t, DataSource dataSource, ConnCal
99103
Savepoint sp = null;
100104
try {
101105
conn = t.getConnection(selectDataSource(t, dataSource, callback));
102-
if (meta != null && meta.isPostgresql()) {
106+
if (supportSavePoint && meta != null && meta.isPostgresql()) {
103107
sp = conn.setSavepoint();
104108
}
105109
runCallback(conn, callback);
@@ -181,4 +185,9 @@ protected DataSource selectDataSource(Transaction t, DataSource master, ConnCall
181185
}
182186
return master;
183187
}
188+
189+
@Override
190+
public void setupProperties(NutMap conf) {
191+
supportSavePoint = conf.getBoolean("nutz.dao.jdbc.psql.supportSavePoint", true);
192+
}
184193
}

0 commit comments

Comments
 (0)