반응형
제육's 휘발성 코딩
반응형
article thumbnail
[Spring JPA 활용2] - QueryDsl 설정
🔷 Spring/JPA 활용 II 2022. 5. 23. 20:07

QueryDSL 실무에서는 조건에 따라서 실행되는 쿼리가 달라지는 동적 쿼리를 많이 사용한다. 이전 방법 public List findAllByString(OrderSearch orderSearch) { //language=JPAQL String jpql = "select o From Order o join o.member m"; boolean isFirstCondition = true; //주문 상태 검색 if (orderSearch.getOrderStatus() != null) { if (isFirstCondition) { jpql += " where"; isFirstCondition = false; } else { jpql += " and"; } jpql += " o.status = :status"..

article thumbnail
[Spring JPA 활용2] - OSIV와 성능 최적화
🔷 Spring/JPA 활용 II 2022. 5. 23. 18:54

OSIV 전략 OSIV 란 Open Session In View 라는 하이버네이트 전략이며, JPA에선 Session 대신 EntityManager 지만 관례상 통합해서 OSIV라고 부른다. OSIV ON 스프링 부트를 시작 시점에 다음과 같은 warn 로그로 남는다. 그 이유는 spring.jpa.open-in-view가 기본 값이 true로 설정되어 있기 때문이다. OSIV 전략은 트랜잭션 시작처럼 최초 데이터베이스 커넥션 시작 시점부터 API 응답이 끝날 때 까지 영속성 컨텍스트와 데이터베이스 커넥션을 유지한다. 그래서 지금까지 View Template이나 API 컨트롤러에서 지연 로딩이 가능한 것이다. 지연로딩은 영속성 컨텍스트가 살아있어야 가능하고, 영속성 컨텍스트는 데이터베이스 커넥션을 유지한..

article thumbnail
[Spring JPA 활용2] - API 개발 (컬렉션 조회 최적화)
🔷 Spring/JPA 활용 II 2022. 5. 23. 17:39

컬렉션 조회 최적화 컬렉션 조회(일대다) 시 페치조인을 사용하면 페이징 문제가 발생한다. 예제를 통해 상황을 살펴보자. 페이징 문제의 원인은 하단 포스팅을 참고하자. https://sasca37.tistory.com/184?category=1218758 [Spring JPA] JPQL 중급 문법 경로 표현식 .(점)을 찍어 객체 그래프를 탐색하는 것을 경로 표현식이라고 한다. 경로 표현식 용어 정리 상태 필드 단순히 값을 저장하기 위한 필드 (ex : m.username) 연관 필드 연관관계를 위한 필 sasca37.tistory.com 주문내역에서 추가로 주문한 상품 정보를 조회하는 예제를 진행해보자. package jpabook.jpashop.domain; import com.fasterxml.jac..

article thumbnail
[Spring JPA 활용2] - API 개발 (지연 로딩과 조회 성능 최적화)
🔷 Spring/JPA 활용 II 2022. 5. 23. 13:00

조회용 샘플 데이터 추가 다음과과 같이 샘플 데이터를 만들어두자. userA 는 JPA1 BOOK1, JPA2 BOOK2 주문 userB 는 SPRING1 BOOK, SPRING2 BOOK 주문 package jpabook.jpashop; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct..

article thumbnail
[Spring JPA 활용2] - 회원 REST API 개발 (DTO 사용 이유)
🔷 Spring/JPA 활용 II 2022. 5. 22. 15:36

API 개발 기본 포스트맨을 설치해서 API 개발 예제를 실습해보자. 포스트맨 설치 : https://www.getpostman.com Postman API Platform | Sign Up for Free Postman is an API platform for building and using APIs. Postman simplifies each step of the API lifecycle and streamlines collaboration so you can create better APIs—faster. www.postman.com 회원 등록 API package jpabook.jpashop.domain; import lombok.Getter; import lombok.Setter; import..

반응형
반응형