QueryDSL
-
#QueryDSL - 6 실무활용 <Spring Data JPA와 Querydsl>QueryDSL 2021. 4. 4. 18:03
실무 활용 - 스프링 데이터 JPA와 Querydsl 스프링 데이터 JPA 리포지토리로 변경 스프링 데이터 JPA - MemberRepository 생성 package study.querydsl.repository; import org.springframework.data.jpa.repository.JpaRepository; import study.querydsl.entity.Member; import java.util.List; public interface MemberRepository extends JpaRepository { List findByUsername(String username); } 스프링 데이터 JPA 테스트 package study.querydsl.repository; import..
-
#QueryDSL - 5 실무활용 <순수-JPA와 Querydsl>QueryDSL 2021. 4. 1. 15:51
실무 활용 - 순수 JPA와 Querydsl · 순수 JPA 리포지토리와 Querydsl · 동적쿼리 Builder 적용 · 동적쿼리 Where 적용 · 조회 API 컨트롤러 개발 순수 JPA 리포지토리와 Querydsl 순수 JPA 리포지토리 package study.querydsl.repository; import com.querydsl.core.BooleanBuilder; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.impl.JPAQueryFactory; import org.springframework.stereotype.Repository; import study.querydsl.dto.MemberSea..
-
#QueryDSL -3 - 기본문법 - Case문 / 상수,문자 더하기QueryDSL 2021. 3. 30. 14:41
Case 문 select, 조건절(where), order by에서 사용 가능 단순한 조건 List result = queryFactory .select(member.age .when(10).then("열살") .when(20).then("스무살") .otherwise("기타")) .from(member) .fetch(); 복잡한 조건 List result = queryFactory .select(new CaseBuilder() .when(member.age.between(0, 20)).then("0~20살") .when(member.age.between(21, 30)).then("21~30살") .otherwise("기타")) .from(member) .fetch(); orderBy에서 Case 문 함..
-
#QueryDSL - 2 기본문법 - JOINQueryDSL 2021. 3. 30. 10:31
조인 - 기본 조인 기본 조인 조인의 기본 문법은 첫 번째 파라미터에 조인 대상을 지정하고, 두 번째 파라미터에 별칭(alias)으로 사용할 Q 타입을 지정하면 된다 join(조인 대상, 별칭으로 사용할 Q타입) 기본 조인 /** * 팀 A에 소속된 모든 회원 */ @Test public void join() throws Exception { QMember member = QMember.member; QTeam team = QTeam.team; List result = queryFactory .selectFrom(member) .join(member.team, team) .where(team.name.eq("teamA")) .fetch(); assertThat(result) .extracting("use..
-
#QueryDSL -1 기본 Q-Type 활용QueryDSL 2021. 3. 29. 17:30
Q클래스 인스턴스를 사용하는 2가지 방법 QMember qMember = new QMember("m"); //별칭 직접 지정 QMember qMember = QMember.member; //기본 인스턴스 사용 기본 인스턴스를 static import와 함께 사용(기존 QMember.member 가 static import로 member로 변환) import static study.querydsl.entity.QMember.*; @Test public void startQuerydsl3() { //member1을 찾아라. Member findMember = queryFactory .select(member) .from(member) .where(member.username.eq("member1")) .fe..
-
#QueryDSL - 0QueryDSL 2021. 3. 29. 11:43
최신 JAVA BACKEND 기술은 스프링 부트 + 스프링 데이터 JPA 를 조합해서 사용. 하지만 이 것으로도 해결하지 못하는 문제가 있다. 문제 1. 복잡한 쿼리 2. 동적 쿼리 이런 문제들을 해결해줄수 있는것이 Querydsl이다. Querydsl 1.쿼리를 문자가아니라 자바코드로 작성 문법 오류를 컴파일 시점에 해결 2.동적 쿼리 문제 해결 3.쉬운 SQL 스타일 문법 4.자바코드이기 때문에 메소드로 재사용성 Querydsl + Querydsl 단순 반복X 쿼리도 자바 코드로! lombok setting settings→ Build →complier→Annoation Processors - Enable annotation processing을 체크 후 재시작 Querydsl setting buil..