如果分页语句没有被消耗掉,它一直保留着,直到被织入到下一次查询语句,如果 被织入的查询语句自己有LIMIT限制,那么两个LIMIT就导致语法错误了。
PageHelper.startPage(pageNo, pageSize); if (flag) { aaaMapper.listAll(); } aaaMapper.getFirstOne();
<select id="listAll" resultType="UserPO"> select name from user </select> <select id="getFirstOne" resultType="String"> select name from user limit 1 </select>
由于使用的ThreadLocal,同一进程的请求,分页语句甚至会织入到下次请求的某个查询语句中。
所以最好让startPage()能与目前查询语句紧贴再一起,确保LIMIT内容能被正确的使用掉。