Spring/Querydsl
-
Querydsl - DTO로 조회하기Spring/Querydsl 2022. 3. 25. 12:15
순수 JPA에서의 DTO 조회 new 명령어 사용해야 한다. DTO의 package 이름을 다 적어줘야하는 불편함이 있다. 생성자 방식만 지원한다. List result = em.createQuery( "select new study.querydsl.dto.MemberDto(m.username, m.age) " + "from Member m", MemberDto.class) .getResultList(); 위와 같은 순수 JPA에서의 DTO 조회 시 사용하기 불편했던 것들을 Querydsl에서 해결해준다. DTO로 조회하기 프로퍼티 접근 - setter 필드 직접 접근 생성자 사용 @QueryProjection 프로퍼티 접근 - setter Projections.bean(class, {field, .....
-
Querydsl - 프로젝션에 따른 결과 반환Spring/Querydsl 2022. 3. 25. 10:53
튜플은 repository 계층에서만 쓰는게 좋은 설계 프로젝션에 따른 결과 반환 프로젝션 : select문에서 가져올 데이터를 지정하는 것을 말한다. 프로젝션 대상이 하나면 타입을 명확하게 지정할 수 있다 프로젝션 대상이 둘 이상이면 튜플이나 DTO로 조회 프로젝션 대상이 하나 프로젝션 대상이 하나면 타입을 명확하게 지정 가능 List result = queryFactory .select(member.username) .from(member) .fetch(); List result = queryFactory .selectFrom(member) .fetch(); 프로젝션 대상이 둘 이상 프로젝션 대상이 둘 이상일 때는 Tuple이나 DTO로 조회 List result = queryFactory .sele..
-
Querydsl - Querydsl 기본 문법Spring/Querydsl 2022. 3. 23. 22:36
Querydsl 기본 문법 Querydsl 사용 방법 Q-Type 검색 조건 쿼리 결과 조회 정렬 페이징 집합 조인 - 기본 조인 조인 - on절 조인 - 페치 조인 서브 쿼리 Case 문 상수, 문자 더하기 기본 문법을 테스트하기 위한 데이터 @Autowired EntityManager em; JPAQueryFactory queryFactory; @BeforeEach public void before() { queryFactory = new JPAQueryFactory(em); Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Memb..
-
Querydsl - 설정 및 검증Spring/Querydsl 2022. 3. 22. 12:42
Querydsl 설정 및 검증 Querydsl 설정 Querydsl을 사용하기 위해서는 Spring Initializr 에서 해당 라이브러리를 추가하지 못하므로 따로 추가해줘야 한다. build.gradle buildscript { ext { queryDslVersion = "5.0.0"// (1) } } plugins { //querydsl 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10"// (2) } dependencies { //querydsl 추가 implementation "com.querydsl:querydsl-jpa:${queryDslVersion}"// (3) annotationProcessor "com.querydsl:queryds..