인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

wngus4278님의 프로필 이미지
wngus4278

작성한 질문수

실전! 스프링 데이터 JPA

@EntityGraph

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

작성

·

93

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이 필요할 때는 양방향도 고려해야 합니다.

감사합니다.

wngus4278님의 프로필 이미지
wngus4278

작성한 질문수

질문하기