Web/QueryDSL

    [QueryDSL] EP5. 실무활용-스프링 데이터 JPA와 Querydsl

    스프링 데이터 JPA 리포지토리로 변경 순수 JPA로 만들었던 리포지토리를 스프링 데이터 JPA가 적용된 리포지토리로 변경합니다. 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로 바꾸면서 스프링 데이터 JPA가 제공하지 않는 메서드들은 사용자 정의로 직접 구..

    [QueryDSL] EP4. 실무활용-순수 JPA 리포지토리와 Querydsl

    순수 JPA 리포지토리와 Querydsl 순수 JPA 리포지토리에 Querydsl을 적용해 봅니다. 리포지토리를 만들고 EntityManager와 JPAQueryFactory를 선언합니다. 생성자주입을 통해 스프링으로부터 EntityManager를 주입받습니다. JPAQueryFactory에 EntityManager를 넣어 생성합니다. (QueryFactory는 EntityManager에 의존하게됩니다.) @Repository public class MemberJpaRepository { private final EntityManager em; private final JPAQueryFactory queryFactory; public MemberJpaRepository(EntityManager em) {..

    [QueryDSL] EP3. 중급 문법

    프로젝션과 결과 반환 - 기본 프로젝션 대상이 하나일 땐 그 대상의 타입으로 반환하면됩니다. 하지만 프로젝션 대상이 둘 이상일땐 튜플이나 DTO로 반환합니다. 튜플로 반환하는 방법에 대해 알아봅니다. 튜플 여기서 튜플은 프로젝션 대상이 여러개 일때 사용하도록 querydsl이 만들어놓은 객체를 말합니다. 튜플 사용법 querydsl은 프로젝션이 여러개일 경우 튜플을 반환합니다. tuple.get()으로 대상을 꺼내쓸 수 있습니다. @Test public void tupleProjection() throws Exception { //given List result = queryFactory .select(member.username, member.age) .from(member) .fetch(); //wh..

    [QueryDSL] EP2. 기본 문법

    기본 사용 방법 1. JPAQueryFactory 생성시 EntityManager를 넘겨주어야 합니다. @Autowired EntityManager em; JPAQueryFactory queryFactory = new JPAQueryFactory(em) 2. queryfactory .select, .from, .where Member findMember = queryFactory .select(m) .from(m) .where(m.username.eq("member1")) .fetchOne(); 전체코드 package study.querydsl; import com.querydsl.jpa.impl.JPAQueryFactory; import org.assertj.core.api.Assertions; imp..

    [QueryDSL] EP1. QueryDSL 설정

    QueryDSL 사용에 앞서 설정을 해주도록 하겠습니다. 기본적으로 QueryDSL은 start.io 에서 dependency를 제공하지 않기 때문에 사용하기 위해서는 직접 설정해주어야 합니다. build.gradle 설정 plugins //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" dependency //querydsl 추가 implementation 'com.querydsl:querydsl-jpa' 설정코드 plugin과 같이 맞물려서 빌드될때 SourceSets querydslDir이 있으면 인텔리제이같은 IDE들이 자동으로 소스폴더에 import 해줍니다. configurations querydsl이 compileCla..