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