请介绍你实习项目中遇到的关于工作流多分支分页场景下 SQL 被拦截错位的问题,以及如何通过调整 PageHelper 中 startPage 的调用位置(从 Controller 层移动到 Service 层)来解决它?
考察说明
考察候选人对 ORM 分页原理、线程上下文状态管理及业务代码组织方式的理解与问题排查能力
回答思路
- 能准确描述多分支分页场景下 SQL 被拦截错位的现象与复现条件
- 能解释 PageHelper 基于 ThreadLocal 的 startPage 机制及其作用边界
- 能分析 Controller 层调用 startPage 与后续执行 SQL 之间可能插入非目标查询导致错位的原因
- 能说明将 startPage 调整到 Service 层紧邻具体查询前调用的好处及仍需注意的边界
- 能结合具体项目经历说明问题排查与验证过程
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。