springboot mybatis示例:
@Select({"select id,xx from table where id=#{id}"})
Map<String,Object> queryById(@Param("id") Long id);
如果表xx为空,则返回的映射不包含xx键。
我搜索了很长时间,
mapper.xml可以配置<setting name="callSettersOnNulls" value="true"/>
可以解决我的问题,但是我不使用xml配置模式,如何使用mybatis注释配置参数callSettersOnNulls?
答案 0 :(得分:0)
我说不, callSettersOnNulls 现在仅支持全局配置,它不支持特定方法
请参阅mybatis的源代码:
org.apache.ibatis.executor.resultset.DefaultResultSetHandler
applyPropertyMappings() or applyAutomaticMappings()
答案 1 :(得分:0)
我现在也遇到了同样的问题。我还没解决
回答问题,配置应该是这样的。
import org.mybatis.spring.boot.autoconfigure.ConfigurationCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyBatisConfiguration {
@Bean
ConfigurationCustomizer mybatisConfigurationCustomizer() {
return new ConfigurationCustomizer() {
@Override
public void customize(org.apache.ibatis.session.Configuration configuration) {
configuration.setCallSettersOnNulls(true);
}
};
}
}