当前使用版本(必填,否则不予处理)
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.autoconfigure.ConfigurationCustomizer;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MybatisPlusConfig {
/**
* 新的分页插件,一缓和二缓遵循mybatis的规则,需要设置 MybatisConfiguration#useDeprecatedExecutor = false 避免缓存出现问题
*/
@Bean
public MybatisPlusInterceptor mybatisPlusInterceptor() {
MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
return interceptor;
}
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
}
// mapper的使用
IPage<StoreReturnBO> search(Page<StoreReturnBO> page, @Param("query") StoreReturnQuery query);
该问题是如何引起的?(确定最新版也有问题再提!!!)
使用的多数据源, 自己创建DataSource exclude 掉了 org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
尝试用最新版3.4.2也有一样的问题
报错信息
org.apache.ibatis.exceptions.TooManyResultsException: Expected one result (or null) to be returned by selectOne()
Comment From: qq31715879
不太能理解, 为什么直接close, 是提问方式有问题吗
Comment From: miemieYaho
不会自己看samples再动动脑?非要伸手那就把你的mybatis-spring-boot-starter去掉
Comment From: qq31715879
不会自己看samples再动动脑?非要伸手那就把你的mybatis-spring-boot-starter去掉
同样是用Interceptor实现的分页, 老代码是用的mybatis-plus的就有问题, 所以上来提一个issue; 到这就变成了非要伸手, 或者直接去掉mybatis-spring-boot-starter.
Comment From: qq31715879
非Executor调用父类Interceptor方法则不分页, 导致分页报错
Comment From: qq31715879
重写了MapperRegistry, 执行MybatisMapperMethod后置处理了结果集, 但是依赖mybatis-spring-boot-starter,
可能导致com.baomidou.mybatisplus.core.MybatisMapperRegistry未生效, 导致了后面一些列问题, 已不再想跟代码
说这么多只想不想被认为是伸手党; 好好提一个问题不被接受!
Comment From: qmdx
引入 mybatis-plus-boot-starter 其它 mybatis 相关依赖不要再添加了
Comment From: qq31715879
引入 mybatis-plus-boot-starter 其它 mybatis 相关依赖不要再添加了
mybatis-spring-boot-starter 会根据注入DataSource而自动配置Mybatis, 尝试去掉之后mybatis-plus并不能实现此功能, 而且分页插件实现思路并不好, TooManyResultsException这个问题已经自行添加一个ResultSetHandler Interceptor解决.