解决方式一:在yml添加
call-setters-on-nulls: true 但是在springboot版本2.0.3.RELEASE不生效
# mybatis 配置
mybatis:
type-aliases-package: org.safety.manager.entity
mapper-locations: classpath:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
map-underscore-to-camel-case: true
call-setters-on-nulls: true
解决方式二:配置 Configuration,亲测可用
@Bean(name = "businessSqlSessionFactory")
public SqlSessionFactory businessSqlSessionFactory(@Qualifier("businessDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
factoryBean.setTypeAliasesPackage("org.safety.manager.entity");
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/business/*.xml"));
org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration();
configuration.setLogImpl(StdOutImpl.class);
configuration.setMapUnderscoreToCamelCase(true);
configuration.setCallSettersOnNulls(true);
factoryBean.setConfiguration(configuration);
//分页插件
Interceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
//数据库
properties.setProperty("helperDialect", "mysql");
//是否将参数offset作为PageNum使用
properties.setProperty("offsetAsPageNum", "true");
//是否进行count查询
properties.setProperty("rowBoundsWithCount", "true");
//是否分页合理化
properties.setProperty("reasonable", "false");
interceptor.setProperties(properties);
factoryBean.setPlugins(new Interceptor[] {interceptor});
return factoryBean.getObject();
}