[Querydsl] 공식문서01 Background Querydsl은 HQL 쿼리를 타입 세이프한 방식으로 유지 관리할 필요성에 의해 탄생하였다. HQL 쿼리는 문자열 연결이 필요하므로 읽기 어려운 코드가 생성된다. 문자열을 통한 도메인 유형 및 속성에 대해 안전하지 않은 참조는 문자열 기반 HQL 구성의 문제 중 하나이다. Querydsl을 통...
[Querydsl] 공식문서02 Tutorials Querying JPA Querydsl은 일반적으로 도메인 모델 데이터를 질의하기 위한 정적 타입의 문법으로 정의한다. JDO 그리고 JPA는 Querydsl을 위한 주요 통합 기술이다. JPA용 Querydsl은 JPQL 및 Criteria 쿼리의 대안이다. Querydsl은 Criteria ...
[Querydsl] 공식문서03 General usage Creating queries Querydsl의 쿼리 구성에는 표현식 인수를 사용하여 쿼리 메서드를 호출하는 작업이 포함된다. 표현식은 일반적으로 도메인 모듈의 생성된 표현식 유형에서 필드에 액세스하고 메서드를 호출하여 구성된다. 코드 생성이 적용되지 않는 경우에는 일반적인 표현식 구성 방...
[Querydsl] 사례공부01 / Left Outer Join 출처 : https://jojoldu.tistory.com/342 우선 OUTER JOIN과 INNER JOIN의 차이부터 알아보자. OUTER JOIN은 조건을 만족하지 않아도 기준이 되는 테이블에 해당하는 데이터는 모두 보여준다. 반면 INNER JOIN은 조건에 만족하는 데이터만...
[Querydsl] 사례공부02 / Cross Join 출처 : https://jojoldu.tistory.com/533 image 사진 출처 : https://www.tutorialgateway.org/sql-joins/ 위의 사진을 보면 Cross Join을 사용하면 많은 연산이 일어날 것을 예상할 수 있을 것이다. 하지만 "Hibernate...
[Querydsl] 사례공부03 / 다이나믹 쿼리 출처 : https://jojoldu.tistory.com/394 우선 다이나믹 쿼리란? 상황에 따라 조건문을 생성하는 것을 말한다. 다이나믹 쿼리를 사용하는 방법에는 BooleanBuilder와 BooleanExpression을 활용하는 방법이 있다. 우선 BooleanBuilder를 알아보자....
[Querydsl] 사례공부04 / select에서 상수 사용하기 출처 : https://jojoldu.tistory.com/523 우선 쿼리 성능을 개선 할 수 있는 아래와 같은 방법이 있다. check for indexes work with the smallest data set required remove unnecessary fields an...
[Querydsl] 사례공부05 / Groupby 최적화하기 출처 : https://jojoldu.tistory.com/477 우선 MySQL에서는 Group by를 하면 file sort가 함께 수행된다고 한다. 인덱스에 있는 칼럼으로 Group by를 한다면 이미 인덱스로 인해 정렬된 상태이기에 큰 문제가 되지 않는다. 하지만 만약 정렬이 필요...
[Querydsl] 사례공부06 / 페이징 성능 개선하기 출처 : https://jojoldu.tistory.com/528 NoOffset 기존의 페이징 방식이 페이지 번호(offset)와 페이지 사이즈(limit)를 기반으로 한다면 NoOffset은 페이지 번호(offset)가 없는 더 보기 방식을 이야기한다. NoOffset은 기존 페이징 쿼...