0

springboot mybatis 示例:

@Select({"select id,xx from table where id=#{id}"})
Map<String,Object> queryById(@Param("id") Long id);

如果表 xx 为空,则返回的映射不包含 xx 键。

找了半天,mapper.xml可以configure<setting name="callSettersOnNulls" value="true"/> 可以解决我的问题,但是我没有使用xml配置方式,如何使用mybatis注解来配置param callSettersOnNulls??

4

2 回答 2

0

我现在也有同样的问题。我还没解决

回答问题

如何使用 mybatis 注解配置参数 callSettersOnNulls

,配置将是这样的。

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);
            }
        };
    }
}
于 2020-12-29T20:46:53.517 回答
0

我说不,callSettersOnNulls现在只支持全局配置,不支持特定方法

查看mybatis的源码:

org.apache.ibatis.executor.resultset.DefaultResultSetHandler
applyPropertyMappings() or applyAutomaticMappings()

在此处输入图像描述

于 2018-08-14T06:27:14.077 回答