본문 바로가기
Spring

[일지] List 를 pageable 과 PageImpl 로 구현하기 ( List to pageImpl )

by onejunu 2020. 9. 17.

 

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

 

Conversion of List to Page in Spring

I am trying to convert list to page in spring. I have converted it using new PageImpl(users, pageable, users.size()); But now I having problem with sorting and pagination itself. When I try pa...

stackoverflow.com

 

댓글