使用版本 springboot 2.4.1 + mybatis-plus 3.4.1
lambdaQuery().select() 无法使用, 提示角标越界
// 会覆盖 构造函数,导致无法调用
@Builder
// 添加下边两个注解
@AllArgsConstructor
@NoArgsConstructor
多数据源 mybatis-plus 无法分页
@Configuration
@EnableTransactionManagement(proxyTargetClass = true) //开启事务
@MapperScan(basePackages = "priv.lsy.sys.persistent", sqlSessionFactoryRef = "sysSqlSessionFactory")
public class SysDataSourceConfig {
// 表示这个数据源是默认数据源
@Primary
@Bean(name = "sysDataSource")
@ConfigurationProperties(prefix = "mydb.sys")
public DataSource getDateSource() {
return DataSourceBuilder.create().build();
}
@Primary
@Bean(name = "sysSqlSessionFactory")
public SqlSessionFactory sysSqlSessionFactory(@Qualifier("sysDataSource") DataSource dataSource)
throws Exception {
// 使用mybatis的
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
// 设置mybatis-plus 分页
bean.setPlugins(mybatisPlusInterceptor());
return bean.getObject();
}
@Primary
@Bean(name = "sysTransactionManager")
public DataSourceTransactionManager testTransactionManager(@Qualifier("sysDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Primary
@Bean("sysSqlSessionTemplate")
public SqlSessionTemplate sysSqlSessionTemplate(
@Qualifier("sysSqlSessionFactory") SqlSessionFactory sessionFactory) {
return new SqlSessionTemplate(sessionFactory);
}
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor());
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
}