简体   繁体   中英

springboot map-underscore-to-camel-case invalid

My spring version is 1.5.2, spring-mybatis-start version is 1.3.2, I set mybatis.configuration.map-underscore-to-camel-case=true in properties. But the MAP I returned was not converted to Camel named

Here is my configuration

mybatis.configuration.map-underscore-to-camel-case=true

The problem has been sovled,the plan is as follows

public class CustomWrapper extends MapWrapper{

public CustomWrapper(MetaObject metaObject, Map<String, Object> map) {
    super(metaObject, map);
}

// useCamelCaseMapping is map-underscore-to-camel-case field
@Override
public String findProperty(String name, boolean useCamelCaseMapping) {
    if(useCamelCaseMapping){
        return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL,name);
    }
    return name;
}
}

public class MapWrapperFactory implements ObjectWrapperFactory {

@Override
public boolean hasWrapperFor(Object object) {
    return object != null && object instanceof Map;
}

@Override
public ObjectWrapper getWrapperFor(MetaObject metaObject, Object object) {
    return new CustomWrapper(metaObject,(Map)object);
}
}

@Configuration
public class MybatisConfig {

@Bean
public ConfigurationCustomizer mybatisConfigurationCustomizer(){
    return new ConfigurationCustomizer() {
        @Override
        public void customize(org.apache.ibatis.session.Configuration configuration) {
            configuration.setObjectWrapperFactory(new MapWrapperFactory());
        }
    };
}
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM