본문 바로가기

개인적으로 공부한 것을 정리해 놓은 블로그입니다 틀린 것이 있으면 댓글 부탁 드립니다!


반응형

querydsl

(3)
QueryDSL 공부 7 - 수정 , 삭제 벌크성 쿼리 JPA에서는 주로 변경감지(dirty checking)을 통해 데이터의 update 가 일어나는데 이 경우에는 개별 엔티티에 대해서 건마다 쿼리가 나가기 때문에 쿼리 한번으로 대량 데이터를 수정할 때는 벌크연산을 사용한다 . QueryDsl에서 벌크연산 하는 방법을 알아 보자 1. 모든엔티티의 특정 컬럼을 변경하고 싶을때 @Test public void bulk_update(){ long count = qf .update(member) .set(member.username, "비회원") .where(member.age.lt(20)) .execute(); em.flush(); em.clear(); List fetch = qf.selectFrom(member).fetch(); for (Member membe..
QueryDSL 공부 5 - 프로젝션과 결과 반환 프로젝션이란 select 절에 대상을 지정하는 것을 말한다 . 프로젝션 대상이 하나일 경우 반환 타입이 명확하게 지정되지만 프로젝션 대상이 둘 이상이면 튜플이나 DTO로 조회해야한다 . 단일 프로젝션 조회 @Test void projection_one(){ List fetch = qf .select(member.username) .from(member) .fetch(); for (String s : fetch) { System.out.println("s = " + s); } } 단일 타입이기 떄문에 반환타입이 명확하다 . Tuple 조회 @Test void tuple_projection(){ List fetch = qf .select(member.username, member.age) .from(memb..
QueryDSL 공부 1 - queryDSL 설정 QueryDSL 은 JPA 를 사용할때 동적쿼리나 복잡한 쿼리들을 자바로 만들어 낼 수 있도록 도와주는 라이브러리이다. 쿼리가 자바로 작성되기 때문에 컴파일 시점에 오류를 잡아낼 수 있고 , 가독성 있게 작성 할 수 있는 것이 장점이다 . 설치를 해보고 QueryDSL이 어떻게 작동 하는지 알아보자 gradle 을 기준으로 설치를 해보려 한다 . spring initializer를 사용하여 프로젝트를 생성할 경우에 추가할 라이브러리 목록에 QueryDSL은 없기 때문에 따로 추가가 필요하다. plugins { id 'org.springframework.boot' version '2.5.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id..

반응형