Springboot+mybatis戻り値がmapの場合、Key値はアルパカ式に変わります
Springbootプロジェクトで、返される結果セットのフィールド名をアルパカ式に変更する必要がある場合は、コードに次のコードを追加します.
MapWrapperFactory.java
MyWrapper.java
mybatisプロファイルに追加
resultType="Map"
MapWrapperFactory.java
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.wrapper.ObjectWrapper;
import org.apache.ibatis.reflection.wrapper.ObjectWrapperFactory;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class MyObjectWrapperFactory implements ObjectWrapperFactory{
@Override
public boolean hasWrapperFor(Object object) {
return object != null && object instanceof Map;
}
@Override
public ObjectWrapper getWrapperFor(MetaObject metaObject, Object object) {
return new MyWrapper(metaObject,(Map)object);
}
}
MyWrapper.java
import com.google.common.base.CaseFormat;
import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.wrapper.MapWrapper;
import java.util.Map;
public class MyWrapper extends MapWrapper {
public MyWrapper(MetaObject metaObject, Map<String, Object> map) {
super(metaObject, map);
}
@Override
public String findProperty(String name, boolean useCamelCaseMapping) {
if(useCamelCaseMapping){
return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL,name);
}
return name;
}
}
mybatisプロファイルに追加
<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- -->
<objectWrapperFactory type="com.hxps.framework.config.MyObjectWrapperFactory"/>