package com.terra.collect.config;
|
|
import com.baomidou.mybatisplus.annotation.DbType;
|
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
|
import com.baomidou.mybatisplus.core.MybatisConfiguration;
|
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
|
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
|
import com.terra.collect.extend.CustomizedSqlInjector;
|
import org.apache.ibatis.type.JdbcType;
|
import org.mybatis.spring.annotation.MapperScan;
|
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Configuration;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
/**
|
* Mybatis-Plus分页配置
|
* @author WWW
|
*/
|
@EnableTransactionManagement
|
@Configuration
|
@MapperScan("com.terra.system.mapper")
|
public class MybatisPlusConfig {
|
/**
|
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置
|
* MybatisConfiguration#useDeprecatedExecutor = false
|
* 避免缓存出现问题(该属性会在旧插件移除后一同移除)
|
*/
|
@Bean
|
public MybatisPlusInterceptor mybatisPlusInterceptor() {
|
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
|
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.POSTGRE_SQL));
|
return interceptor;
|
}
|
|
@Bean
|
public ConfigurationCustomizer configurationCustomizer() {
|
return new ConfigurationCustomizer() {
|
@Override
|
public void customize(MybatisConfiguration configuration) {
|
configuration.setCacheEnabled(true);
|
configuration.setMapUnderscoreToCamelCase(true);
|
configuration.setCallSettersOnNulls(true);
|
configuration.setJdbcTypeForNull(JdbcType.NULL);
|
}
|
};
|
}
|
|
@Bean
|
public CustomizedSqlInjector customizedSqlInjector() {
|
return new CustomizedSqlInjector();
|
}
|
}
|