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

jungjin1.kim님의 프로필 이미지
jungjin1.kim

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

이럴때는 ManyToMany 관계 매핑을 사용해도 문제가 없지 않을까요?

해결된 질문

작성

·

214

1

Member 클래스와 Role 클래스가 있습니다.

Member 클래스에는 Role 들을 담아두는 컬렉션 필드 List<Role> roles 가 있고

Role 클래스는 @id roleId, roleName 프로퍼티만 가지고 있습니다.

이 두 클래스의 관계를 매핑하기 위해서

Member 클래스에 List<Role> roles 프로퍼티의 매핑정보를 아래처럼 했습니다.

@ManyToMany
@JoinTable(name = "ROLE_MAP",
       joinColumns = @JoinColumn(name = "MEMBER_ID"),
       inverseJoinColumns = @JoinColumn(name = "ROLE_ID"))
private List<Role> roles;

이렇게 하면 일단 동작은 잘 됩니다.

강사님께서 강의중에 매핑 테이블이 단순하게 유지되는 일은 거의 없기 때문에 매핑 테이블을

엔티티로 승격을 시켜서 ManyToOne, OneToMany 로 하는 것이 낫다고 하셨습니다.

그런데 만약 Master Code 테이블처럼 별도의 비즈니스 로직을 가지고 있지 않고

Member 엔티티에서 값 처럼 사용하고 있을 때는 ManyToMany로 해도 크게 문제가 없을 것 같은데

강사님 의견이 궁금합니다!!

질문의 요지가 잘 전달이 되었는지 잘 모르겠습니다. ㅠ

답변 1

1

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

안녕하세요^^ jungjin님

질문의 요지가 잘 전달되었습니다^^!

이런 경우 크게 문제될 것은 없습니다.

다만 실무에서는 ROLE_MAP에 단순히 매핑 정보만 들어가는 것이 아니라, ROLE_MAP에 데이터가 등록된 시간과 같은 추가 데이터를 넣어야 하는데, 이런 것이 어렵다는 단점이 있습니다.

그 외에도 강의에서 전달해드린데로, 성능최적화 등등... 막상 해보시면 장점보다는 단점이 많습니다.

그래서 제가 진행했던 실무 프로젝트에서는 사실상 금지했습니다 ㅎㅎ

감사합니다^^!

jungjin1.kim님의 프로필 이미지
jungjin1.kim

작성한 질문수

질문하기