# QuertDsl

3개의 포스트
post-thumbnail

[Qeruydsl] 실전! Querydsl (2)

Qeurydls - 중급 문법 프로젝션 결과 반환 프로젝션 대상이 하나 프로젝션 대상이 둘 이상 DTO 조회 - 순수 JPA에서 조회 DTO 조회 - Querydsl 빈 생성 프로퍼티 접근 : Projections.bean() 필드 직접 접근 : Projections.fields() 생성자 사용 : Projections.constructor() @QeuryProjcetion 생성자 + @QeuryProjcetion @QeuryProjcetion 활용 이 방법이 가장 안전한 방법이긴하지만, DTO에 Querydsl 어노테이션을 유지해야한다는 점과 DTO까지 Q파일을 생성해야하는 단점이 있다. 동적 쿼리 동적 쿼리를 해결하는 2가지 방법 BooleanBuilder Where 다중 파라미터 사용 BooleanBuilder 사용 Where 다

2023년 4월 1일
·
0개의 댓글
·

querydsl 설정하기(gradle)

오늘은 JPA에서 querydsl사용을 위한 설정을 정리해 보려고 한다. build.gradle 설정 스프링부트 2.6이상, Querydsl5.0을 지원하는 방법으로 정리해 보았다. 스프링부트 2.6부터는 Querydsl5.0을 사용 한다. build.gradle 설정이 끝나고 나면 변경된 설정이 적용 될 수 있도록 아래와 같은 그래들 버튼을 클릭해준다. querydsl 사용을 위한 설정은 모두 끝났다. 이제 Q타입을 생성 해보도록 하자. 자바 하위에 entity 파일을 생성 후 Gradle > Tasks

2023년 2월 13일
·
0개의 댓글
·

[2020우아콘]수십억건에서 QUERYDSL 사용하기 정리

extends/implements 사용하지 않기 JPAQueryFactory만 있으면 Querydsl의 모든 기능을 사용할 수 있다. 동적쿼리는 BooleanExpression 어떤 쿼리인지 예상하기 어렵다 Querydsl의 exist 메소드 금지 select를 사용할 때 (원하는 데이터가 있는지 판단할 때) exists가 count보다 빠르다. 스캔 대상이 앞에 있을 수록 더 심한 성능차이 발생. exists가 빠른 이유는 조건에 해당하는 row 1개만 찾으면 바로 쿼리를 종료하기 때문임. limit 1로 조회를 제한함(조회결과가 없으면 null이란 조건도 추가해야함) Cross Join 회피 묵시적 join으로 Cross Join 발생 (일부의 DB는 이에 대해 어느정도 최적화가 지원됨) Hibernate 이슈라서 Spring Data JPA도 동일하게 발생 명시적 Join으로 Inner Join 발생 Entity 보다는 D

2021년 2월 7일
·
0개의 댓글
·