인프런 커뮤니티 질문&답변

남상우님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

Cascade.ALL 과 지연 로딩에 대해 질문 있습니다!

21.07.31 00:50 작성

·

130

0

안녕하세요 영한님.

프로젝트를 하던 도중 이유를 확실하게 모르겠는 현상이 발생해 질문 드립니다.

class User{

...

@OneToMany(mappedBy = "user", cascade = Cascade.ALL, orphanRemoval = true)

private Set<Account> accounts = new HashSet<>();

}

class Account {

...

@ManyToOne(fetch = FetchType.LAZY)

@JoinColumn(name = "user_id)

private User user

}

위와 같이 Account 엔티티와 User 엔티티를 양방향 연관관계를 맺어주었습니다.

@OneToMany는 디폴트로 지연 로딩으로 설정돼있는데, User 엔티티를 findById 메소드로 조회하면 User와 Account가 조인되는 현상이 발생하였습니다.

@OneToMany(mappedBy = "user", cascade = { Cascade.PERSIST, Cascade.REMOVE}, orphanRemoval = true)

로 설정하면 조인이 발생하지 않습니다.

왜 이런 현상이 발생하는지 궁금해서 질문 드렸습니다.

감사합니다.

 

답변 1

0

김영한님의 프로필 이미지
김영한
지식공유자

2021. 08. 01. 16:29

안녕하세요. 상우님

전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.

추가로 다음 내용도 코멘트 부탁드립니다.

1. 실행 방법을 알려주세요.

2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.

감사합니다.