1. queryDSL의 fetchResults 로 한번에 가져오기. (가장 이상적)
Controller 부터 받은 pageable 로 offset 과 pageSize를 알 수 있다.
아래는 유저이름과 city이름을 최초 검색했을때 나오는 쿼리다. 영속성 컨텍스트는 비어있다.
위에서 알수 있는 것처럼 fetchResults를 하면 전체 total을 알기 위한 쿼리 1번과 content를 위한 쿼리 1번 총2 번을 날린다.
하지만 컬렉션을 가져오기 위해서는 위처럼 하기가 힘들다.
결국 서버 딴에서 데이터를 가져오고 알아서 데이터를 걸러야한다.
2. 데이터를 가져온뒤 List 를 PageImpl 로 변환하기
검색 조건이 여러개 붙다 보면 서버 딴에서 데이터를 가공해야 할 때가 있다.
만약 가공한 데이터 리스트의 이름을 dto 라고 하자.
그러면 위의 코드 처럼 dto 의 시작과 끝지점을 수동으로 설정해 줘야한다.
참고 : stackoverflow.com/questions/37749559/conversion-of-list-to-page-in-spring
'Spring' 카테고리의 다른 글
[Kafka & Zookeeper 일지] Subscriber 에서 생기는 하나의 테이블에 같은 객체 쓰기(write)에 대한 동시 접근 제어 (0) | 2021.03.16 |
---|---|
[일지] 의존관계 주입의 필요성 (0) | 2020.10.11 |
[일지] mustache 에서 javascript 정적 리소스를 불러올 때 GET http://localhost:XXX net::ERR_ABORTED 404 (0) | 2020.09.15 |
[일지] 쿼리가 너무 많이 전송되는데 줄일 수 없을까? (0) | 2020.09.07 |
[일지] Category는 삭제할 수 없다고?? (0) | 2020.09.02 |
댓글