MybatisPlus 分页插件导致@InterceptorIgnore(tenantLine = “true“)注解失效解决方案

文章讲述了MybatisPlus分页插件导致`@InterceptorIgnore(tenantLine=true)`注解失效的详细原因,涉及SQL执行顺序,以及提供了解决方案——在Mapper接口中添加临时方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MybatisPlus 分页插件导致@InterceptorIgnore(tenantLine = “true”)注解失效的原因在于分页插件SQL执行顺序问题.

比如下面这个分页查询方法
在这里插入图片描述
分页插件在处理的时候会先执行 com.xx.system.mapper.SysEnterpriseBindingMapper.listPage_COUNT 当返回count只大于0 ,才会继续执行 com.xx.system.mapper.SysEnterpriseBindingMapper.listPage
但是在 InterceptorIgnoreHelper.INTERCEPTOR_IGNORE_CACHE中存的是方法没有 _COUNT后缀的这个方法(com.xx.system.mapper.SysEnterpriseBindingMapper.listPage)所以导致 willIgnoreTenantLine方法中的参数id=com.xx.system.mapper.SysEnterpriseBindingMapper.listPage_COUNTINTERCEPTOR_IGNORE_CACHE匹配不到对应的,所以就返回false,从而导致了@InterceptorIgnore(tenantLine = "true")失效,源码如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解决方案:
在原有的分页查询方法的mapper接口中,手动添加一个com.xx.system.mapper.SysEnterpriseBindingMapper.listPage_COUNT方法并且在方法上添加 @InterceptorIgnore(tenantLine = "true")注解,这样的话在willIgnoreTenantLine()方法中就能够匹配到.并且该方法无需在xml中写真是sql,只需要添加这么一个伪方法,然后mybatisplu将这个方法存到InterceptorIgnoreHelper类中的INTERCEPTOR_IGNORE_CACHE的 Map中可以

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值