From 09e2df82486a5a81a0524a9c98859ac4ad1e91a2 Mon Sep 17 00:00:00 2001 From: Looly Date: Tue, 25 May 2021 11:25:55 +0800 Subject: [PATCH] fix beeCp bug --- hutool-db/pom.xml | 4 ++-- .../main/java/cn/hutool/db/ds/bee/BeeDSFactory.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) 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); } }