Closed ContinueOneSecond closed 3 years ago
我已经在Mybatis中配置了新的分页配置,但是没有解决这个问题。这个问题只会在redis代理二级缓存的时候出现该问题,我的redis是哨兵模式启动,二级缓存采用hash格式,fastJson的序列化格式,请问是否有影响?
@Bean
public ConfigurationCustomizer configurationCustomizer() {
return configuration -> configuration.setUseDeprecatedExecutor(false);
}
@Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> configuration.setUseDeprecatedExecutor(false); }
已解决:
我是采用自定义配置类的形式
仔细看过 ConfigurationCustomizer
后发现是 通过 自定义 MybatisConfiguration中 mybatisConfiguration.setUseDeprecatedExecutor(false);
进行配置
同样插件需要通过 sqlSessionFactory.setPlugins(mybatisPlusInterceptor);
进行手动配置
新版本配置,建议可以写在官方文档。
感谢您的帮助。
你好,具体怎么解决的,可以交流下吗?
你好,具体怎么解决的,可以交流下吗?
我可以怎么样帮助到你?
您好,方便加我QQ吗?77826118,谢谢
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.2</version>
</dependency>
public class MybatisPlusConfig {
@Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { var interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; }
@Bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> configuration.setUseDeprecatedExecutor(false); } }
configuration.setUseDeprecatedExecutor(false);这个不存在
<dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency>
public class MybatisPlusConfig {
@bean public MybatisPlusInterceptor mybatisPlusInterceptor() { var interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; }
@bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> configuration.setUseDeprecatedExecutor(false); } }
configuration.setUseDeprecatedExecutor(false);这个不存在
同样的问题 版本 3.4.3.3
mybatis-plus 版本 3.4.0 问题已解决!!! 使用spring-boot配置
@bean public ConfigurationCustomizer configurationCustomizer() { return configuration -> configuration.setUseDeprecatedExecutor(false); }
事隔3年了,遇到同样的坑,感谢以上大神们的解答!!!!
当前使用版本(必填,否则不予处理)
3.4.1
该问题是如何引起的?(确定最新版也有问题再提!!!)
在使用Redis代理二级缓存中发现存在两个Count缓存,并且总是获取错的Count缓存 Count缓存createCacheKey的 与 getCountCacheKey 结果不一致
重现步骤(如果有就写完整)
在MybatisCachingExecutor类中
//确定原本的key有正确的值 Object result = this.tcm.getObject(cache, key);
if (pageOptional.isPresent()) { page = (IPage)pageOptional.get(); if (page.isSearchCount()) { //在这里获取缓存的的key被改变,最终获取了错误的值 cacheKey = this.getCountCacheKey(ms, boundSql, parameterObject, RowBounds.DEFAULT); count = (Number)this.tcm.getObject(cache, cacheKey); if (count != null) { page.hitCount(true); return new PageList((List)result, count.longValue()); }
导致在
Object result = executor.query(countMs, parameter, rowBounds, resultHandler, cacheKey, countSql).get(0);
数组越界望解答
报错信息
`org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Cause: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Caused by: org.apache.ibatis.exceptions.PersistenceException:
Error querying database. Cause: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Cause: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(ArrayList.java:659) at java.util.ArrayList.get(ArrayList.java:435) at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:134) at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:59) at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61) at com.sun.proxy.$Proxy111.query(Unknown Source) at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147) ... 79 more`