Jelajahi Sumber

调整动态表名处理拦截器,新增升级更新日志

hubin 3 tahun lalu
induk
melakukan
e2d4759325

+ 22 - 0
CHANGELOG.md

@@ -1,5 +1,27 @@
 # CHANGELOG
 
+## [v3.4.4] 2022.01.01
+
+- 升级 mybatis 3.5.8
+- 添加动态表名的钩子函数 https://github.com/baomidou/mybatis-plus/pull/3965
+- 注入类 DefaultSqlInjector 优化调整
+- 反射类 ReflectionKit 优化 field -> field 改为 Function.identity()
+- baseMapper 新增方法 exist 方法
+- 解决 sysbase 小写 from 导致 index 取不到正确的索引值问题
+- 新增通过 entityClass 获取 Mapper 方法 `BaseMapper<Entity> mapper = SqlHelper.getMapper(Entity.class);`
+- 注入方法 byId 注入优化
+- 多租户 right join bug https://gitee.com/baomidou/mybatis-plus/issues/I4FP6E  https://github.com/baomidou/mybatis-plus/pull/4035
+- 自定义注入方法名优化 https://github.com/baomidou/mybatis-plus/pull/4159
+- 新增 sap hana 内存数据库
+- 新增移除 Mapper 相关缓存,支持 GroovyClassLoader 动态注入 Mapper
+- 新增 SimpleQuery 工具栏查询
+- SQL 注入验证工具类 代码修改写法
+- 整理字符串常量的使用
+- upgrade license-gradle-plugin version
+- 自定义注入方法名优化 (不兼容)
+- 重载columnsToString方法允许子类调整
+
+
 ## [v3.4.3.4] 2021.09.22
 
 - order by wrapper 存在条件不排序问题处理

+ 11 - 7
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/plugins/inner/DynamicTableNameInnerInterceptor.java

@@ -54,7 +54,7 @@ public class DynamicTableNameInnerInterceptor implements InnerInterceptor {
     public void setHook(Runnable hook) {
         this.hook = hook;
     }
-    
+
     /**
      * 表名处理器,是否处理表名的情况都在该处理器中自行判断
      */
@@ -63,8 +63,10 @@ public class DynamicTableNameInnerInterceptor implements InnerInterceptor {
     @Override
     public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
         PluginUtils.MPBoundSql mpBs = PluginUtils.mpBoundSql(boundSql);
-        if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) return;
-        mpBs.sql(this.changeTable(mpBs.sql()));
+        if (!InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) {
+            // 非忽略执行
+            mpBs.sql(this.changeTable(mpBs.sql()));
+        }
     }
 
     @Override
@@ -73,9 +75,11 @@ public class DynamicTableNameInnerInterceptor implements InnerInterceptor {
         MappedStatement ms = mpSh.mappedStatement();
         SqlCommandType sct = ms.getSqlCommandType();
         if (sct == SqlCommandType.INSERT || sct == SqlCommandType.UPDATE || sct == SqlCommandType.DELETE) {
-            if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) return;
-            PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql();
-            mpBs.sql(this.changeTable(mpBs.sql()));
+            if (!InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) {
+                // 非忽略执行
+                PluginUtils.MPBoundSql mpBs = mpSh.mPBoundSql();
+                mpBs.sql(this.changeTable(mpBs.sql()));
+            }
         }
     }
 
@@ -97,7 +101,7 @@ public class DynamicTableNameInnerInterceptor implements InnerInterceptor {
         if (last != sql.length()) {
             builder.append(sql.substring(last));
         }
-         if(hook != null){
+        if (hook != null) {
             hook.run();
         }
         return builder.toString();