jpa 2

JPQL 실행 시 Flush와 영속성 컨텍스트 동작 확인

JPQL 실행 시 Flush와 영속성 컨텍스트 동작 확인이 테스트는 두 가지 주요 목적을 가지고 있습니다:JPQL 실행 전 flush가 실행되는지 확인합니다.영속성 컨텍스트에 동일한 ID를 가진 엔티티가 존재할 경우, JPQL로 가져온 값이 영속성 컨텍스트의 값으로 대체되지 않는지 확인합니다. @Test@DisplayName("닉네임 변경 요청시 해당 회원의 닉네임을 변경한다.")void updateMemberWithNickNameRequest() throws Exception { //given Member member = saveMemberAndMemberImage(); Long memberId = member.getId(); Jwt jwtCreatedBySavedMember = generate..

Framework/Spring 2024.07.22

JPA에서 단방향 및 양방향 일대일 관계의 외래키 처리와 지연 로딩 문제

JPA에서 단방향 및 양방향 일대일 관계의 외래키 처리와 지연 로딩 문제❗️일대일 대상 테이블에 외래키 단방향 관계는 JPA에서 지원하지 않으며, 양방향 관계만 지원합니다. [인프런 김영한님 자료]대상 테이블에 외래키가 존재하는 경우, 프록시 기능의 한계로 인해 지연 로딩으로 설정해도 항상 즉시 로딩됩니다.예를 들어, Member 객체를 가져왔을 때 JPA는 가져온 Member 객체에 Locker가 있는지 여부를 알아야 합니다. 1. 외래키가 Locker 에 있을 때외래키가 Locker에 있다면, Member 엔티티를 가져올 때 Member 클래스에 정의된 Locker가 존재하는지 확인해야 합니다. 이때 Member 테이블에는 외래키가 존재하지 않기 때문에, 지연 로딩 설정 여부와 상관없이 Locker ..

Framework/Spring 2024.07.22