본문 바로가기

QueryDSL2

자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-2) 객체 지향 쿼리 언어 JPQL / Criteria / QueryDSL / 네이티브 SQL / JDBC 직접 사용 / SQL 매퍼에 대한 개념을 정리한다. 10강의 나머지 2편을 정리한다. 자바 ORM 표준 JPA 프로그래밍 - JPA 정리하기 (10-2) 객체 지향 쿼리 언어 10.3 Criteria JPQL을 자바 코드로 작성하도록 도와주는 빌뎌 클래스 API 문자가 아닌 코드로 작성하므로 문법 오류를 컴파일 단계에서 잡을 수 있고 문자 기반의 JPQL보다 동적 쿼리를 안전하게 생성 가능 하다는 장점 하지만 코드가 복잡하고 장황해서 직관적 이해가 떨어지는 단점 10.3.1 Criteria 기초 검색 조건부터 정렬까지 Criteria 빌더를 사용해서 코드를 완성함 쿼리 루트를 만들고 쿼리 루트는 조회의 시작점 10.3.2 C.. 2022. 10. 30.
QueryDsl 사용 시 CrossJoin 발생하는 경우와 해결 방법 들어가며 QueryDsl을 사용하던 도중 원치않게 CrossJoin이 발생하는 경우를 발견하여 해당 사항을 정리한다. Cross Join 먼저 CrossJoin이 무엇인지에 대해서 알아본다. CrossJoin은 교차조인이라고 말하여 두 테이블이 있을때 교차조인을 하게 되면 두 테이블의 데이터의 모든 조합을 나타내게 된다. 한쪽에 데이터가 n개이고 다른 한쪽에 데이터가 m개라고 한다면 총 n x m개의 경우의 수가 나타나게 되어 데이터가 많은 테이블이라면 사용할때 주의하지 않으면 성능상 큰 문제를 가져올 수 있다. Cross Join 발생하는 경우 위에서도 설명을 했듯이 교차 조인이 필요하여 사용하는 경우는 상관없지만 원치않는 상황에서 교차조인이 발생하게 되면 성능상 문제가 될 수 있기에 원치 않는 교차 .. 2022. 7. 29.