version:3.5.3.1
InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).build());
Wrapper wrapper=new QueryWrapper<SysUserPo>();
List list = getBaseMapper().selectList(wrapper);
InterceptorIgnoreHelper.clearIgnoreStrategy();
你好 ,上面的代码执行中还是会执行拦截器中InnerInterceptor中beforeQuery和processSelect方法,拦截忽略无效 请问这个要怎么解决?
Comment From: miemieYaho
InnerInterceptor里自己用InterceptorIgnoreHelper判断
Comment From: tom055
自定义拦截器已加入判断,InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())为false。还是无法拦截,是这样判断的吗
@Override
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
if (InterceptorIgnoreHelper.willIgnoreDynamicTableName(ms.getId())) {
return;
}else{
PluginUtils.MPBoundSql mpBoundSql = PluginUtils.mpBoundSql(boundSql);
mpBoundSql.sql(parserSingle(mpBoundSql.sql(), ms.getId()));
mpBoundSql.parameterMappings(mpBoundSql.parameterMappings());
}
}
Comment From: tom055
已解决,非常感谢 拦截改为:InterceptorIgnoreHelper.handle(IgnoreStrategy.builder().tenantLine(true).dynamicTableName(true).build());