nieqiuqiu před 6 roky
rodič
revize
e0eac12d72

+ 10 - 1
mybatis-plus/src/test/java/com/baomidou/mybatisplus/test/MybatisTest.java

@@ -4,14 +4,17 @@ import com.alibaba.druid.pool.DruidDataSource;
 import com.baomidou.mybatisplus.annotation.DbType;
 import com.baomidou.mybatisplus.core.MybatisSqlSessionFactoryBuilder;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler;
 import com.baomidou.mybatisplus.test.h2.entity.enums.AgeEnum;
 import com.baomidou.mybatisplus.test.h2.entity.mapper.H2UserMapper;
 import com.baomidou.mybatisplus.test.h2.entity.persistent.H2User;
 
 import org.apache.ibatis.io.Resources;
 import org.apache.ibatis.jdbc.ScriptRunner;
+import org.apache.ibatis.session.Configuration;
 import org.apache.ibatis.session.SqlSession;
 import org.apache.ibatis.session.SqlSessionFactory;
+import org.apache.ibatis.type.TypeHandlerRegistry;
 import org.h2.Driver;
 import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
@@ -44,6 +47,13 @@ class MybatisTest {
         Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
         SqlSessionFactory factory = new MybatisSqlSessionFactoryBuilder().build(reader);
         SqlSession sqlSession = factory.openSession(dataSource.getConnection());
+        Configuration configuration = factory.getConfiguration();
+        TypeHandlerRegistry typeHandlerRegistry = configuration.getTypeHandlerRegistry();
+        /*
+         *  如果是将defaultEnumTypeHandler设置成MP的处理器,
+         *  请自行注册处理非MP枚举处理类的原生枚举类型
+         */
+        typeHandlerRegistry.register(AgeEnum.class, EnumTypeHandler.class);     //这里我举起了个栗子
         Connection connection = dataSource.getConnection();
         ScriptRunner scriptRunner = new ScriptRunner(connection);
         scriptRunner.runScript(Resources.getResourceAsReader("h2/user.ddl.sql"));
@@ -59,7 +69,6 @@ class MybatisTest {
         H2User user = mapper.selectById(66L);
         Assertions.assertNotNull(user);
         Assertions.assertEquals(user.getAge(), AgeEnum.THREE);
-        Assertions.assertEquals(user.getAge().getValue(), AgeEnum.THREE.getValue());
         Assertions.assertNotNull(user.getTestType());
         Assertions.assertEquals(mapper.updateById(new H2User(66L, "777777")), 1);
         Assertions.assertEquals(mapper.deleteById(66L), 1);

+ 0 - 2
mybatis-plus/src/test/resources/mybatis-config.xml

@@ -5,8 +5,6 @@
 <configuration>
 
     <settings>
-        <!-- //todo 设置默认枚举,在使用原生的时候,混合使用原生枚举的方式不是很好设置,暂时建议实体里面不混合使用原生枚举,只使用MP提供的实现接口或注解方式-->
-        <!-- //todo 考虑下将枚举的注册方式提到 MybatisConfiguration ??????-->
         <setting name="defaultEnumTypeHandler" value="com.baomidou.mybatisplus.extension.handlers.EnumTypeHandler"/>
     </settings>