본문 바로가기

JPA3

🙆🏻‍♂️ 너, Fetch Join 만능이야? N+1 문제를 해결하기 위한 방법 Fetch Join사용하는 것이 무조건 정답일까? 결론부터 이야기해보자!Fetch Join도 한계점을 가진다.📍 Fetch Join의 한계점🚫 페치 조인을 사용하면 별칭을 줄 수 없다.🚫 컬렉션이 두개 이상인 경우 사용할 수 없다.🚫 컬렉션 페치 조인시 페이징을 사용할 수 없다. 🔎  왜 페치 조인을 사용하면 별칭을 줄 수 없을까?String query = "select u from User u join fetch u.team t where t.name = 'A';  이러한 쿼리문과 같이 별칭을 사용해서 조건을 추가하게 되는 경우, 기존 페치 조인으로 가져올 데이터의 일부가 누락될 수 있다. 🙆🏻‍♂️  좀 더 디테일한 상황 예시(비교) 개발자 A씨는 유저의.. 2024. 9. 24.
🙆🏻‍♂️ 너, Fetch Join 좀 알고 싶다? Fetch Join이랑 친해지는 시간을 갖도록 하겠습니다. fetch Join은 실무에서 엄청 중요하다.                                       - 김영한님 -  🔎 Fetch Join이 뭘까?1. JPQL에서 성능 최적화를 위해 제공하는 기능2. 연관된 엔티티 및 컬렉션을 한번의 쿼리로 조회하는 기능 🔎  위에 나온 두 기능이 뭔데?우선, 연관된 엔티티 및 컬렉션을 한번의 쿼리로 조회 하는 기능을 먼저 알아보겠습니다. 현재, 회원 엔티티와 팀 엔티티가 팀을 기준으로 1:N 관계를 맺고 있습니다.1:N 관계는 한개의 팀에 여러명의 회원이 오는 관계입니다. 코드는 다음과 같습니다. 회원 엔티티package com.example.spring_jpa_basic.페치조인;impo.. 2024. 9. 22.
@DataJapTest를 사용하는 이유 package com.example.payment.transferHistory;import com.example.payment.transferHistory.entity.TransferHistory;import jakarta.persistence.EntityManager;import jakarta.persistence.PersistenceContext;import java.math.BigDecimal;import org.assertj.core.api.SoftAssertions;import org.junit.jupiter.api.DisplayName;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Aut.. 2024. 7. 17.