[QueryDSL] 검색 조건 쿼리
·
QueryDSL
QueryDSL의 진짜 장점은,쿼리를 자바 코드로 읽고 쓸 수 있다는 점이다. 이번 장에서는 QueryDSL로 검색 조건 쿼리(where) 를 작성하는 방법을 알아볼 것이다. 1) 기본 준비 — QueryFactory 생성QueryDSL은 JPAQueryFactory를 통해 쿼리를 작성한다.즉, JPA의 EntityManager를 기반으로 동작하기 때문에아래와 같이 QueryFactory를 초기화해야 한다.@AutowiredEntityManager em;JPAQueryFactory queryFactory;@BeforeEachvoid before() { queryFactory = new JPAQueryFactory(em);}이 한 줄이 있어야 이후 모든 QueryDSL 코드가 동작한다. 2) 예제 1..
[QueryDSL] QueryDSL과 빠른 세팅 방법
·
QueryDSL
Spring Data JPA만으로도 대부분의 서비스는 충분하다.간단한 CRUD나 단순 조회 쿼리는 메서드 이름만으로 금방 해결된다.하지만 조금만 복잡해지면 상황이 달라진다. 조건이 여러 개인 동적 쿼리,여러 테이블을 엮는 복잡한 조인,필요한 필드만 조회하는 프로젝션,그리고 성능을 위한 페치 조인까지 들어가면문자열 기반 JPQL은 한계가 금방 드러난다. 이럴 때 필요한 것이 바로 QueryDSL이다.QueryDSL은 컴파일 시점에 오류를 잡아주는 타입 안전 쿼리 빌더로,IDE 자동완성과 높은 가독성을 제공한다.즉, 복잡한 조건도 안전하고 깔끔하게 작성할 수 있다. 따라서 오늘은 QueryDSL을 빠르게 세팅하는 방법에 대해 알아볼 것이다. 1. build.gradle 설정먼저 build.gradle 파일에..
[스프링] 스프링 Data JPA에 대하여
·
스프링 데이터 JPA
스프링을 공부하다 보면 가장 자주 마주치는 주제 중 하나가 JPA다.JPA는 객체를 데이터베이스에 매핑해주는 표준 기술이라서, 개발자가 SQL을 직접 쓰지 않고도 엔티티를 통해 데이터를 다룰 수 있게 해준다.처음 써보면 굉장히 편리하다. 하지만 프로젝트가 커질수록, 단순한 CRUD(저장, 조회, 수정, 삭제) 코드가 계속 반복되는 걸 금방 느끼게 된다. 이 글에서는 왜 스프링 Data JPA가 필요하게 되었는지를 직접 코드 예시로 보여주고, 같은 기능을 스프링 Data JPA로 바꿨을 때 얼마나 코드가 간단해지는지를 비교해본다. 결국 “이런 불편함 때문에 스프링 Data JPA가 등장했다”는 걸 자연스럽게 이해하게 될 것이다. JPA만으로 구현해보기예시로 Member와 Team이라는 두 엔티티가 있다.@..