QueryDsl서브쿼리를 사용하는 방법에 대해서 내용을 한번 정리해보려고 한다. 회사 내부 신규 프로젝트의 경우 Spring Boot + JPA를 기반으로 프로젝트를 진행하고 있다. 내부적으로 쿼리 작업을 하면서 Spring Data JPA에서 기본적으로 제공해 주는 CRUD 메서드를 사용하더라도 데이터를 얻는 데에 많은 어려움이 존재했고, QueryDsl 라이브러리를 통해서 원하는 데이터를 얻어내고 있다. 그중 많이 사용하지만 매번 까먹는 내용인 서브 쿼리 사용 방법에 대해서 정리를 하려고 한다.😀 ⚡QClass 생성 가장 기본적으로 QueryDsl을 사용하려면 먼저 QClass를 생성해야 한다. QClass는 Querydsl에서 사용하는 엔티티의 필드와 연산자에 대한 메타 정보를 제공하는 클래스이다...
JPA
⚡JPA 사용 방법 (기본) 1. 의존성 추가 - maven repository 사이트에서 버전에 따라 추가가 가능하다. implementation 'org.springframework.boot:spring-boot-starter-data-jpa' 2. Entity Class 생성 - Entity가 설정된 Class는 JPA가 관리하는 클래스이고, 테이블과 매핑할 테이블은 어노테이션을 붙여 사용한다. # 여기에서 @Entity가 붙은 클래스는 JPA가 관리하는 클래스이고, 테이블과 매핑할 테이블은 해당 어노테이션을 붙인다. 만약 @ID의 컬럼이 자동 증가 하도록 테이블을 생성 했다면, @GeneratedValue 어노테이션을 사용해야한다. @Data @Entity @NoArgsConstructor @Ta..
⚡Spring JPA (Java Persistence API) JPA는 자바 진영에서 ORM(Object-Relational Mapping) 기술 표준으로 사용되는 인터페이스의 모음이다. ⚡ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 객체-관계 매핑의 줄임말이다 ORM을 이용하면, SQL문이 아닌 클래스의 메소드를 통해서 데이터베이스를 조작 가능하다. 개발자가 객체 모델만 이용해서 프로그래밍을 하는데 집중이 가능하다. 단점이 있다면, 신중하게 설계가 필요하다. 프로젝트의 복잡성이 커지는 경우 잘못된 구현으로 인해서 속도 저하 및 일관성이 없는 문제점이 생길수 있다. 구형 SQL문이라던지 대형 SQL문의 경우 속도측면에 따라서 별도의 튜닝이 필요하기 ..