项目用了pagehelper分页 pagehelper会根据要执行的sql 例如 : select
pagehelper会生成一个统计条目数的sql select_COUNT
但是自己写的拦截器 会拦截这个select_COUNT 该怎么办
拦截器:
@Intercepts({
@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class}),
@Signature(type = Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class, CacheKey.class, BoundSql.class}
)})
问题已经解决了 因为拦截器执行顺序问题 先执行自己的拦截器 在执行pagehelper的就ok了
StatementHandler statementHandler = (StatementHandler) invocation.getTarget();
MetaObject metaStatementHandler = SystemMetaObject.forObject(statementHandler);
MappedStatement mappedStatement = (MappedStatement) metaStatementHandler.getValue("delegate.mappedStatement");
mappedStatement.getId()
可以通过id过滤,不执行之后程序进入下一个
invocation.proceed();