fix beeCp bug

This commit is contained in:
Looly 2021-05-25 11:25:55 +08:00
parent fd090664dd
commit 09e2df8248
2 changed files with 15 additions and 2 deletions

View File

@ -25,7 +25,7 @@
<hikariCP.version>2.4.13</hikariCP.version>
<mongo.version>3.12.8</mongo.version>
<sqlite.version>3.34.0</sqlite.version>
<hsqldb.version>2.6.0</hsqldb.version>
<hsqldb.version>2.5.2</hsqldb.version>
<jedis.version>3.6.0</jedis.version>
</properties>
@ -80,7 +80,7 @@
<dependency>
<groupId>com.github.chris2018998</groupId>
<artifactId>beecp</artifactId>
<version>3.2.1</version>
<version>3.1.2</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>

View File

@ -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 bugSqlite下默认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);
}
}