diff --git a/hutool-db/pom.xml b/hutool-db/pom.xml
index d5ab53de1..af9d925a3 100644
--- a/hutool-db/pom.xml
+++ b/hutool-db/pom.xml
@@ -25,7 +25,7 @@
2.4.13
3.12.8
3.34.0
- 2.6.0
+ 2.5.2
3.6.0
@@ -80,7 +80,7 @@
com.github.chris2018998
beecp
- 3.2.1
+ 3.1.2
slf4j-api
diff --git a/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java b/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java
index b3bfb11c4..06669a85d 100644
--- a/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java
+++ b/hutool-db/src/main/java/cn/hutool/db/ds/bee/BeeDSFactory.java
@@ -2,11 +2,13 @@ package cn.hutool.db.ds.bee;
import cn.beecp.BeeDataSource;
import cn.beecp.BeeDataSourceConfig;
+import cn.beecp.TransactionIsolationLevel;
import cn.hutool.core.util.StrUtil;
import cn.hutool.db.ds.AbstractDSFactory;
import cn.hutool.setting.Setting;
import javax.sql.DataSource;
+import java.sql.Connection;
/**
* BeeCP数据源工厂类
@@ -42,6 +44,17 @@ public class BeeDSFactory extends AbstractDSFactory {
}
}
+ // since BeepCP 3.2.1 bug,Sqlite下默认Transaction Isolation不支持,在此判断修正
+ if(StrUtil.containsIgnoreCase(jdbcUrl, "sqlite")){
+ final int isolationCode = beeConfig.getDefaultTransactionIsolationCode();
+ if(Connection.TRANSACTION_READ_UNCOMMITTED != isolationCode
+ && Connection.TRANSACTION_SERIALIZABLE != isolationCode){
+ // SQLite只支持这两种事务
+ beeConfig.setDefaultTransactionIsolation(TransactionIsolationLevel.LEVEL_READ_UNCOMMITTED);
+ beeConfig.setDefaultTransactionIsolationCode(Connection.TRANSACTION_READ_UNCOMMITTED);
+ }
+ }
+
return new BeeDataSource(beeConfig);
}
}