반응형
반응형
Introduction 서비스 로직에서 특정 데이터를 업데이트, 즉 변경 하기 위해서 JPA 를 사용할 경우 일반적으로 DirtyChecking 을 통해 업데이트를 진행한다. 하지만 다수의 데이터를 일괄적으로 변경을 해야하는 경우에는 다수의 조회 및 업데이트 쿼리가 발생하기 때문에 성능적으로 좋지 않다. 그런 경우 JPQL 을 통해 업데이트 쿼리를 직접 작성하여 Bulk 업데이트를 진행하기도 하는데. Querydsl를 통해 문자열로 이루어진 JPQL 업데이트 쿼리의 Set 파라미터를 동적으로 업데이트를 진행할 수 있다. Bulk update 1.JPQL JPQL을 통한 기본적은 Bulk Update는 단순한 문자열 형태로 진행된다. 아래 코드는 Repository에서 나이와 유저아이디로 해당 유저들의 ..
Introduction 특정 웹사이트를 보면 검색조건들이 존재한다. 회원검색을 예를 들자면, 회원 목록을 조회할 경우 여러가지 검색 옵션들을 지정해 리스트를 보여준다. 1. 이름 검색 2. 이름 + 나이 검색 3. 이름 + 나이 + 성별 검색 이렇게 여러가지 조건에 따라 그에 부합하는 회원 목록을 보여주기 위해서 해당 회원 조회 쿼리에 조건들을 추가한다. 단순히 Spring Data Jpa 만 사용할 경우에는 인터페이스를 통해 조건에 맞는 함수를 추가적으로 만들어 주어야한다. 하지만 검색조건들이 다양한 만큼 조건에 해당하는 함수를 모두 만드는 일은 쉽지 않다. 이를 QueryDsl 에서 동적으로 검색조건을 동작할 수 있게 지원한다. 조건 검색 1. Spring Data Jpa 인터페이스를 활용한 조..
Introduction 백엔드에서 일반적으로 서비스 로직을 구성할 때 매개변수와 전달인자로 DTO를 사용한다. 여러가지 이유가 있겠지만, 필자가 생각하는 기본적인 이유는 1. 데이터의 종류와 타입 등 클라이언트의 요구사항이 다르다. - 서비스에서 클라이언트의 요구사항에 맞는 데이터를 가공 및 추가하는 과정이 필요하고, 불필요한 데이터를 응답할 필요가 없다. 2. Entity 객체의 필드 값을 예상하기 힘들다. - Entity 객체는 특정조건에 따른 결과물일 수도 있기 때문에 특정 데이터에 관해 직관적이지 못하고, 코드 추적이 불가피하다. 3. Entity 객체의 데이터의 무결성 - 서비스 로직에서 전달인자와 매개변수로 Entity 객체를 사용하게 되면, 의도치 않게 Entity의 값이 변경될 경우 JPA..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.