Ver código fonte

默认枚举类处理,修改默认LanguageDriver.

聂秋秋 6 anos atrás
pai
commit
baaa201475

+ 2 - 2
mybatis-plus-boot-starter/src/main/resources/META-INF/additional-spring-configuration-metadata.json

@@ -50,8 +50,8 @@
             }
         },
         {
-            "sourceType": "org.apache.ibatis.session.Configuration",
-            "defaultValue": "org.apache.ibatis.scripting.xmltags.XMLLanguageDriver",
+            "sourceType": "com.baomidou.mybatisplus.core.MybatisConfiguration",
+            "defaultValue": "com.baomidou.mybatisplus.core.MybatisXMLLanguageDriver",
             "name": "mybatis-plus.configuration.default-scripting-language",
             "description": "A default LanguageDriver class.",
             "type": "java.lang.Class<? extends org.apache.ibatis.scripting.LanguageDriver>"

+ 0 - 10
mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/spring/MybatisSqlSessionFactoryBean.java

@@ -548,9 +548,6 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
                             field.setAccessible(true);
                             EnumAnnotationTypeHandler.addEnumType(cls, field);
                             typeHandlerRegistry.register(cls, EnumAnnotationTypeHandler.class);
-                        } else {
-                            // 原生方式
-                            registerOriginalEnumTypeHandler(typeHandlerRegistry, cls);
                         }
                     }
                 }
@@ -665,13 +662,6 @@ public class MybatisSqlSessionFactoryBean implements FactoryBean<SqlSessionFacto
         return clazz.isEnum() ? Arrays.stream(clazz.getDeclaredFields()).filter(field -> field.isAnnotationPresent(EnumValue.class)).findFirst() : Optional.empty();
     }
 
-    /**
-     * 对原生枚举的处理类,默认{@link EnumOrdinalTypeHandler}
-     */
-    protected void registerOriginalEnumTypeHandler(TypeHandlerRegistry typeHandlerRegistry, Class<?> enumClazz) {
-        typeHandlerRegistry.register(enumClazz, EnumOrdinalTypeHandler.class);
-    }
-
     /**
      * {@inheritDoc}
      */

+ 2 - 0
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/h2/config/MybatisPlusConfig.java

@@ -4,6 +4,7 @@ import javax.sql.DataSource;
 
 import org.apache.ibatis.plugin.Interceptor;
 import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.type.EnumOrdinalTypeHandler;
 import org.apache.ibatis.type.JdbcType;
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.context.annotation.Bean;
@@ -46,6 +47,7 @@ public class MybatisPlusConfig {
          * 下划线转驼峰开启
          */
         configuration.setMapUnderscoreToCamelCase(true);
+        configuration.setDefaultEnumTypeHandler(EnumOrdinalTypeHandler.class);  //默认枚举处理
         sqlSessionFactory.setConfiguration(configuration);
         PaginationInterceptor pagination = new PaginationInterceptor();
         OptimisticLockerInterceptor optLock = new OptimisticLockerInterceptor();