-
[Spring Boot] 쿼리 DSL을 이용한 서브쿼리SpringBoot Meteor 2021. 12. 17. 09:52
쿼리DSL 서브쿼리를 이용하여, 해당 회원 리뷰 글 + 좋아요 수 조회
- 우선 QueryDSL에 구현하고자 하는 메서드를 정의해준다
public interface ReviewQueryDSLRepository { List<AdminMemberReviewDTO> getAdminMemberReviewDTOList(Long memberIdx); }
- QueryDSLImpl 에서 구현부 코드를 작성해준다.
@Override public List<AdminMemberReviewDTO> getAdminMemberReviewDTOList(Long memberIdx) { // DTO로 반환 JPAQuery<AdminMemberReviewDTO> adminMemberListDTOJPAQuery = query .select( new QAdminMemberReviewDTO( reviewEntity.idx, reviewEntity.title, reviewEntity.createDate, reviewEntity.grade, reviewEntity.order, reviewEntity.replyYn, JPAExpressions // 서브쿼리를 사용하기위해 JPAExpressions를 사용한다. .select(likeEntity.count()) .from(likeEntity) .where(likeEntity.review.idx.eq(reviewEntity.idx)) ) ) .from(reviewEntity) .where(reviewEntity.member.idx.eq(memberIdx)) .orderBy(reviewEntity.idx.desc()) .offset(0) // 3개의 리스트만 들고오기 위해서 offset(0) ~ limit(3)으로 설정해준다. .limit(3); return adminMemberListDTOJPAQuery.fetch(); // fetch를 날려 리스트를 조회해준다. (쿼리문 실행) }
'SpringBoot Meteor' 카테고리의 다른 글
[Spring Boot] 시큐리티 회원가입시 추가정보 미기입 상태 분기처리 (0) 2021.12.23 [Spring Boot] Spring Security 시큐리티 권한 업데이트 시 동적 적용 (0) 2021.12.21 [SpringBoot] 쿼리 DSL 동적 조건문 생성 (0) 2021.12.17 [SpringBoot]Content-Security-Policy(resorces request https) (0) 2021.11.10 [SpringBoot] 인스타그램 API를 이용해 인스타 Feed 데이터 들고오기2 (0) 2021.10.22