해결된 질문
작성
·
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에 데이터가 등록된 시간과 같은 추가 데이터를 넣어야 하는데, 이런 것이 어렵다는 단점이 있습니다.
그 외에도 강의에서 전달해드린데로, 성능최적화 등등... 막상 해보시면 장점보다는 단점이 많습니다.
그래서 제가 진행했던 실무 프로젝트에서는 사실상 금지했습니다 ㅎㅎ
감사합니다^^!