• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    해결됨

양방향 매핑과 객체 그래프 탐색 질문

20.03.24 02:27 작성 조회수 92

0

안녕하세요.

이번 강의에서 양방향 관계로 매핑했을때 오너 엔티티에서 관계를 맺어주는 코드가 필수고 종속 엔티티에서 관계를 맺어주는 코드는 optional하다고 설명을 해주셨는데요

예를 들어 강의에서처럼 Study(오너), Account(종속) 엔티티가 있을때 객체에서는 study.setOwner(account)만 해주면 Study 테이블과 Account 테이블에 데이터가 잘 들어가잖아요

근데 객체측면에서 account.getStudies()와 같이 종속 엔티티에서 객체 그래프 탐색이 필요한 경우에는 account.getStudies().add(study)가 optional하지 않고 필수적인거 맞나요?

코드 작성해서 실행은 해봤는데 확실히 알고싶어서 질문드립니다. @OneTyMany(mappedBy)로 JPA가 어디까지 해주는건지 헷갈리네요.

감사합니다.

답변 1

답변을 작성해보세요.

1

@OneTyMany(mappedBy)로 JPA가 해주는거는 엔티티를 DB에 맵핑할 때 해당 변수가 상대편 쪽에 어떤 이름으로 맵핑이 되어 있는지 알려주는 용도이고, 양방향 관계를 Many쪽에서 관리할 때 주로 쓰는 설정입니다.

Account에 Study를 OneToMany 양방향 관계로 만들었다는 가정하에,  @OneToMany(mapped)를 사용하셨다면 Many쪽 그러니까 Study라고 알려주는 용도인거죠. 그렇게 안하면 Account에서 Study로, Study에서 Account로 각기 다른 단방향 관계 두개가 만들어진걸로 인식합니다.

객체 관계를 만들어 주는건 hp님께서 설명하신 내용이 맞습니다. 객체 관계를 생각하면 두쪽 모두 객체 관계를 만들어 줘야 합니다.