Spring/QueryDSL20 동적 쿼리 - Where 다중 파라미터 사용 where 조건에 null 값은 무시된다. 메서드를 다른 쿼리에서도 재활용 할 수 있다. 쿼리 자체의 가독성이 높아진다. null 체크는 주의해서 처리해야 한다. Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 14. 동적 쿼리 - BooleanBuilder [BooleanBuilder] QueryDSL에서 동적 쿼리를 해결하는 방식에는 크게 두 가지가 있습니다.. BooleanBuilder Where Parameter 먼저 BooleanBuilder에 대해서 소개하겠습니다.. [MemberTeamDto] @QueryProjection을 사용하면 작성한 DTO Class를 Q타입으로 생성합니다.. @QueryProjection을 사용하지 않고 Projections.Constructor 등을 사용하여 작성하셔도 됩니다.. @Data public class MemberTeamDto { private Long memberId; private String username; private int age; private Long teamId; private Stri.. 2021. 6. 13. 프로젝션과 결과 반환 - @QueryProjection 생성자 + @QueryProjection 빌드 QMemberDto 생성 확인 @QueryProjection 활용 이 방법은 컴파일러로 타입을 체크할 수 있으므로 가장 안전한 방법이다. 다만 DTO에 QueryDSL 어노테이션을 유지해야 하는 점과 DTO까지 Q파일을 생성해야 하는 단점이 있다. distinct 참고 : distinct는 JPQL의 distinct와 같다. Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 12. 프로젝션과 결과 반환 - DTO 조회 순수 JPA에서 DTO 조회 코드 순수 JPA에서 DTO를 조회할 때는 new 명령어를 사용해야 한다. DTO의 package 이름을 다 적어줘야해서 지저분하다. 생성자 방식만 지원한다. Querydsl 빈 생성(Bean population) 결과를 DTO 반환할 때 사용 프로퍼티 접근 필드 직접 접근 생성자 사용 프로퍼티 접근 필드 직접 접근 별칭이 다를 때 프로퍼티나, 필드 접근 생성 방식에서 이름이 다를 때 해결 방안 ExpressionUtils.as(source, alias) : 필드나, 서브 쿼리에 별칭 적용 username.as("memberName") : 필드에 별칭 적용 생성자 사용 Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 11. 프로젝션 결과 반환 - 기본 프로젝션 : select 대상 지정 프로젝션 대상이 하나 프로젝션 대상이 하나면 타입을 명확하게 지정할 수 있다. 프로젝션 대상이 둘 이상이면 튜플이나 DTO로 조회 튜플 조회 프로젝션 대상이 둘 이상일 때 사용한다. com.querydsl.core.Tuple Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 10. 상수, 문자 더하기 상수가 필요하면 Expressions.constant(xxx) 사용 참고 : 위와 같이 최적화가 가능하면 SQL에 constant 값을 넘기지 않는다. 상수를 더하는 것 처럼 최적화가 어려우면 SQL에 constant 값을 넘긴다. 문자 더하기 concat 참고 : member.age.stringValue() 부분이 중요한데, 문자가 아닌 다른 타입들은 stringValue()로 문자로 변환할 수 있다. 이 방법은 ENUM을 처리할 때도 자주 사용한다. Reference 자바 ORM 표준 JPA 프로그래밍 QueryDSL 2021. 6. 9. 이전 1 2 3 4 다음