SpringBoot + MyBatis-Plus 페이지 나누기 플러그인이 적용되지 않는 해결 방법

12945 단어 프로그래머
구성 클래스
@Configuration
public class MyBatisPlusConfig {

    @Bean
    public PaginationInterceptor paginationInterceptor() {
        return new PaginationInterceptor();
    }
}

테스트 방법
@Test
    public void selectPage() {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();
        queryWrapper.ge("age", 23);

        Page<User> page = new Page<>(1,2);
        IPage<User> iPage = userMapper.selectPage(page, queryWrapper);
        logger.info("   ={}", iPage.getPages());
        logger.info("    ={}", iPage.getTotal());
        List<User> users = iPage.getRecords();
        for (User user : users) {
            logger.info("    ={}", JSON.toJSONString(user));
        }
    }

조회 결과는 분명히 설정된 조회 수량이 2인데, 모든 데이터를 조회해낸다
   =0
    =0
    ={"age":23,"email":"xb163.com","id":1193812778507046913,"managerId":"1193812575125258242","name":"  "}
    ={"age":33,"email":"zyq163.com","id":1193817523615461378,"managerId":"1193812575125258242","name":"   "}
    ={"age":32,"email":"lly163.com","id":1193818710385369089,"managerId":"1193810888373317634","name":"   "}

보기SQL 실행 페이지가 없음
 SELECT id,name,manager_id,email,age
 FROM user
 WHERE (age >= 23);

원래 시작 클래스에 스캐너가 지정되지 않았습니다. 설정 클래스와 구성 요소 클래스는 기본적으로 시작 클래스가 있는 패키지나 하위 패키지에 있어야 합니다. 그렇지 않으면 @ComponentScan 지정을 사용해야 합니다. 시작 클래스에 추가하면 저는 모든 패키지를 직접 스캐너합니다. 설정 클래스가 있는 패키지를 직접 스캐너할 수 있습니다.
@ComponentScan("com.example.mybatis.plus.mybatisplus.*")

지금 테스트 중입니다.
   =2
    =3
    ={"age":23,"email":"xb163.com","id":1193812778507046913,"managerId":"1193812575125258242","name":"  "}
    ={"age":33,"email":"zyq163.com","id":1193817523615461378,"managerId":"1193812575125258242","name":"   "}

이때 SQL은 두 문장의 총수를 먼저 조사한 것이다
 SELECT COUNT(1)
 FROM user
 WHERE (age >= 23);

기록을 재검토하다
 SELECT id,name,manager_id,email,age
 FROM user
 WHERE (age >= 23)
 LIMIT 0,2;

좋은 웹페이지 즐겨찾기