• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

선생님 연관관계 궁금한 부분이 있습니다..

21.10.11 15:17 작성 조회수 278

1

시큐리티에서 좀 벗어난 질문인데

강의를 보다가 궁금한 부분이 생겼습니다..

 

엔티티의 연관관계 설정할 떄 (회원과 권한 기준으로)

회원(User), 권한(Role)가 서로 ManyToMany로 설정여 연관관계의 주인엔티티(User)에서 @JoinTable로 User_Role 매핑테이블을 찾아가는 것과

 

회원(User), 권한(Role) + 회원권한(User_Role) 엔테티 자체를 추가로 만들어서 OneToMany 구현해주는것의 차이. 

 

1. 둘다 N:M관계를 처리하기 위해 설정 할 수 있는 매핑이 맞는지요?

 

2. 이 둘의 차이는 중간에 매핑테이블이 생성되는건 똑같이 생성되는데  User_Role을 엔티티로 만들어 두냐 아니냐로 나뉘어지는 건가요?

 

JPA랑 병행 학습하면서 시큐리티 강의를 듣고 있어서 한참 질문 수준이 부족한 것 같습니다.. 

답변 1

답변을 작성해보세요.

1

답변이 좀 늦었습니다.

1. 둘다 N:M관계를 처리하기 위해 설정 할 수 있는 매핑이 맞는지요?

네 둘다 N:M 관계를 해소하기 위한 연관관계 설정입니다.

 

2. 이 둘의 차이는 중간에 매핑테이블이 생성되는건 똑같이 생성되는데  User_Role을 엔티티로 만들어 두냐 아니냐로 나뉘어지는 건가요?

네 맞습니다.

ManyToMany 는 JPA 에서 자동적으로 1:N 의 관계로 참조할 수 있는 테이블을 생성해 주는 것입니다.

다만 ManyToMany 는 두 엔터티의 키로만 자동적으로 구성되고 다른 컬럼들은 임의로 추가할 수 없다는 단점이 있습니다.

그래서 강의에서는 편의상 ManyToMany 를 사용했지만 실무에서는 가능한한 oneToMany / ManyToOne 형태의 연관관계로 설정하는 것이 좋습니다.

 

궁콘이님의 프로필

궁콘이

질문자

2021.11.01

감사합니다.

우선 강의에 벗어난 질문드려 죄송합니다. 

다음부터는 강의주제에 관련된 질문만 드리겠습니다!

 

두 차이점 이해 되었습니다. 감사합니다!