各个论坛都翻了一遍,发现处理方式都大同小异,但是在引入他们的处理方式时发现不起作用,查看了源码之后发现问题
前面的处理都和其他的差不多
1.首先自定义MapWrapper
public class MapKeyLowerWrapper extends MapWrapper {
public MapKeyLowerWrapper(MetaObject metaObject, Map<String, Object> map) {
super(metaObject, map);
}
@Override
public String findProperty(String name, boolean useCamelCaseMapping) {
return name==null?"":name.toLowerCase() ;
}
}
2.自定义ObjectWrapperFactory
public class MapWrapperFactory implements ObjectWrapperFactory {
@Override
public boolean hasWrapperFor(Object o) {
return o != null && o instanceof Map;
}
@Override
public ObjectWrapper getWrapperFor(MetaObject metaObject, Object o) {
return new MapKeyLowerWrapper(metaObject, (Map) o);
}
}
3.引入配置
这一步我采取的是新建config类来引入
查看了很多文章,他们customize方法传入参数用的是org.apache.ibatis.session.Configuration,实际上这个是不生效的。
自己试了很多次才发现应该引入com.baomidou.mybatisplus.core.MybatisConfiguration
@Configuration
public class MybatisConfig {
@Bean
public ConfigurationCustomizer configurationCustomizer(){
return new ConfigurationCustomizer() {
@Override
public void customize(MybatisConfiguration configuration) {
configuration.setObjectWrapperFactory(new MapWrapperFactory());
}
};
}
}
版权声明:本文为qq56505541原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。