QueryDSL 2

Querydsl | Pageable과 page를 사용하는 방법

SpringData에서 Pageable은 페이지 요청에 대한 데이터를 담을때 사용하는 인터페이스이다. 본론으로 들어가기 전에 위의 인터페이스에 대해 잠시 살펴보자!! 위의 사진과 같이 페이징 처리에 필요한 (limit, offset) 등을 구현하기 위한 메소드들이 정의되어 있으며, pageable의 구현체인 AbstractPageRequest 클래스에 구현되어 있다. pageable을 사용하기 위해서는 Controller 단에서 pageable 파라미터를 받으면 Spring MVC에서 pageable 사용을 지원하기 때문에 자체적으로 PageableHandlerMethodArgumentResolver 클래스를 사용하여 pageable 인스턴스를 구현체인 PageRequest로 변환한다. 그래서 reque..

JPA | QueryDsl 집계함수[SUM, COUNT ..] 사용 시, Dto로 반환

✅ 고민되었던 부분 querydsl 에서 집계함수를 사용하게 되면 반환값이 Tuple 형식으로 반환되게 된다. Tuple 형식을 사용해보려고 했지만 반환되는 값에서 필드 하나하나를 가져와 다시 dto에 맵핑해야 하는 상황이 발생되었고, Tuple 자체가 querydsl 객체이기 때문에 Repository 계층이 아닌, Service 계층까지 가져오는 것을 막고 싶었다. 위의 방법을 찾아보다가 집계함수 사용 시, groupby와 projection을 사용하여 dto로 받아올 수 있다는 사실을 알게 되었고, projection에 대하여 공부해보고, 사용 방법에 대해서도 적어보려고 한다! ✅ Projection 연산자란 ..? 한 Relation의 Attribute들의 부분 집합을 구성하는 연산자이다. 결과로..