diff --git a/hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java b/hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java index 19f7cab08..d1499b32a 100644 --- a/hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java +++ b/hutool-db/src/main/java/cn/hutool/db/ThreadLocalConnection.java @@ -46,7 +46,9 @@ public enum ThreadLocalConnection { GroupedConnection groupedConnection = threadLocal.get(); if (null != groupedConnection) { groupedConnection.close(ds); - threadLocal.remove(); + if(groupedConnection.removeAble()){ + threadLocal.remove(); + } } } @@ -97,5 +99,13 @@ public enum ThreadLocalConnection { } return this; } + + /** + * 多数据源情况情况下判断是否能从上下文中删除 + * @return + */ + public boolean removeAble(){ + return connMap.size()==0; + } } }