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

wngus4278님의 프로필 이미지

작성한 질문수

실전! 스프링 데이터 JPA

@EntityGraph

양방향 매핑 제거시 - fetch join/enityGraph

작성

·

65

0


[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? 아니요
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 모르겠습니다..ㅜㅜ 안보이더라고요
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/

[질문 내용]
강사님 fetch join과 entityGraph에 대해서 공부를 해서, 연관된 객체에 대해서 가져올때, fetch join을 통해서 한방에 가져오는 법을 배웠는데, 만약 양방향 매핑을 풀고, 단방향 매핑으로 코드를 작성하려고 하는데,

@Data
@NoArgsConstructor
@Entity(name ="team")
public class TeamJpaEntity {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name ="team_id")
    private Long id;
    private String name;

    @OneToMany(mappedBy = "myTeamId")
    private List<MemberJpaEntity> memberJpaEntityList = new ArrayList<>();
}
----------

@Data
@NoArgsConstructor
@Entity(name = "user")
public class MemberJpaEntity {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name ="user_id")
    private Long id;

    private String name;

    @Column(name = "team_id")
    private Long myTeamId;
}

일때, 양방향 매핑을 끊어서, 단반향 매핑만 되게끔 수정을 했는데, 이렇게 되면 패치조인을 못 하지않나여? 궁금해서 질문을 올립니다...ㅜ 순환참조를 삭제하려고 없애고, TeamJpaRepository.findById(teamId)로 팀이 필요할때 조회할 수 있게 만들었는데, 한방으로는 못 가져오나여?

 

답변 1

1

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

안녕하세요. wngus4278님

생각하신 내용이 맞습니다. 양방향 연관관계가 필요한 이유중 하나가 양쪽 방향으로 fetch join이 필요할 때는 양방향도 고려해야 합니다.

감사합니다.