当前使用版本
3.4.0
该问题是如何引起的?
配置了拦截器,其中会根据用户的 id 新增一个 where 条件,现在有某些语句要不用使用这个 where 条件
看了文档,只有一个 @InterceptorIgnore 注解,放在方法上。因为大多数语句都是一些简单的语句,xml中也没有写\<resultMap>,所以想问一下有没有别的忽略拦截器的方法?
比如拦截器某个方法返回false就不用拦截器这种?
Comment From: miemieYaho
没有
Comment From: zhuzhenwen-github
/ * @ClassName BaseTenantLineInnerInterceptor * @Description 采用装饰模式,增强多租户拦截器({@link TenantLineInnerInterceptor}) * @Author zhuzhenwen * @Date 2020/11/24 2:52 下午 * @Version 1.0 / @Data @AllArgsConstructor public class BaseTenantLineInnerInterceptor implements InnerInterceptor {
//多租户拦截器
private TenantLineInnerInterceptor delegate;
@Override
public void beforeQuery(Executor executor, MappedStatement ms, Object parameter, RowBounds rowBounds, ResultHandler resultHandler, BoundSql boundSql) throws SQLException {
//获取当前要执行的查询方法名称
String sqlMethodName = ms.getId().substring(ms.getId().lastIndexOf(StringPool.DOT)+1);
//判断当前方法是否为mp自带的内置方法
Optional
}
@Override
public void beforePrepare(StatementHandler sh, Connection connection, Integer transactionTimeout) {
PluginUtils.MPStatementHandler mpSh = PluginUtils.mpStatementHandler(sh);
MappedStatement ms = mpSh.mappedStatement();
String sqlMethodName = ms.getId().substring(ms.getId().lastIndexOf(StringPool.DOT)+1);
Optional