返回值为map时做驼峰映射处理
// An highlighted block
package com.exchange.utils.config;
import com.google.common.base.CaseFormat;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.wrapper.MapWrapper;
import org.apache.ibatis.reflection.wrapper.ObjectWrapper;
import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import tk.mybatis.mapper.autoconfigure.ConfigurationCustomizer;
import java.util.Map;
@Configuration
public class ResultTypeIsMapAliasConfig {
@Bean
public ConfigurationCustomizer mybatisConfigurationCustomizer() {
return new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setObjectWrapperFactory(new ObjectWrapperFactory() {
@Override
public boolean hasWrapperFor(Object object) {
return object != null && object instanceof Map;
}
@Override
public ObjectWrapper getWrapperFor(MetaObject metaObject, Object object) {
return new MapWrapper(metaObject, (Map) object) {
@Override
public String findProperty(String name, boolean useCamelCaseMapping) {
return name.contains("_") && useCamelCaseMapping
? CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, name) : name;
}
};
}
});
}
};
}
}