동적 쿼리와 성능 최적화 조회
Builder 사용
조회 최적화용 DTO 추가
@Data
public class MemberTeamDto {
private Long memberId;
private String username;
private int age;
private Long teamId;
private String teamName;
@QueryProjection
public MemberTeamDto(Long memberId, String username, int age, Long teamId,
String teamName) {
this.memberId = memberId;
this.username = username;
this.age = age;
this.teamId = teamId;
this.teamName = teamName;
}
}@QueryProjection을 추가했다.
QMemberTeamDto를 생성하기 위해 ./gradlew compileQuerydsl을 실행한다.
이 방식은 DTO가 Querydsl 라이브러리에 의존하게 된다는 단점이 있다.
싫다면 애너테이션을 삭제하고 아래 중 하나를 사용한다.
Projection.bean()
fields()
constructor()
회원 검색 조건
동적 쿼리 구현
테스트
condition에 조건이 아무것도 들어가지 않으면 모든 데이터를 끌고 온다.
운영에서는 데이터가 많기 때문에 기본 조건이 있거나 limit이라도 있어야 한다.
Where절에 파라미터 사용
Builder에 비해 가독성이 좋다.
메서드 재사용
where 절에서 만들어놨던 메서드를 재사용할 수 있다.
Last updated
Was this helpful?