PAGING2 [일지] List 를 pageable 과 PageImpl 로 구현하기 ( List to pageImpl ) 1. queryDSL의 fetchResults 로 한번에 가져오기. (가장 이상적) Controller 부터 받은 pageable 로 offset 과 pageSize를 알 수 있다. 아래는 유저이름과 city이름을 최초 검색했을때 나오는 쿼리다. 영속성 컨텍스트는 비어있다. 위에서 알수 있는 것처럼 fetchResults를 하면 전체 total을 알기 위한 쿼리 1번과 content를 위한 쿼리 1번 총2 번을 날린다. 하지만 컬렉션을 가져오기 위해서는 위처럼 하기가 힘들다. 결국 서버 딴에서 데이터를 가져오고 알아서 데이터를 걸러야한다. 2. 데이터를 가져온뒤 List 를 PageImpl 로 변환하기 검색 조건이 여러개 붙다 보면 서버 딴에서 데이터를 가공해야 할 때가 있다. 만약 가공한 데이터 리스트.. 2020. 9. 17. [JPA/WARN] firstResult/maxResult ... collection fetch : applying in memory! OneToMany 인 상황에서 fetch Join을 하여 가져오는 경우 페이징 할때 발생하는 경고다. 데이터베이스에서 페이징을 할수 없기 때문에 어쩔수 없이 메모리로 올려서 페이징을 해야하는 데 이때 메모리가 잘못하면 터질수 있으므로 경고를 날리는 것임. 일대다 페치조인의 위험은 포스팅에서 찾아보면 나와있다. 2020. 8. 8. 이전 1 다음