이럴때는 ManyToMany 관계 매핑을 사용해도 문제가 없지 않을까요?
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에 데이터가 등록된 시간과 같은 추가 데이터를 넣어야 하는데, 이런 것이 어렵다는 단점이 있습니다.
그 외에도 강의에서 전달해드린데로, 성능최적화 등등... 막상 해보시면 장점보다는 단점이 많습니다.
그래서 제가 진행했던 실무 프로젝트에서는 사실상 금지했습니다 ㅎㅎ
감사합니다^^!
리뉴얼 시기
0
55
2
변경감지(더티체킹) 이후 플러시할 경우의 쿼리
0
73
1
단일 테이블 시 null 값과 연관관계 필요성 질문
0
66
1
벌크연산에서 member.getAge 호출 시 영속성 컨텍스트에서 데이터를 가져오는건가요?
0
95
2
inheritance startegy 선택시 고려사항
0
62
1
Entity 동등성 비교
0
66
1
실무 조언 관련 질문입니다.
0
91
1
H2데이터베이스 파일 생성
0
106
2
서브쿼리 강의에서 ALL 예시 관련 질문드립니다.
1
96
2
수정또는 삭제시 영속성 엔티티에 값이 무조건 있어야 하나요?
0
85
1
JPQL 메소드와 락
0
81
1
Delivery @OneToOne
0
99
1
17강 4~5분대 테이블 값 조회가 안됩니다.
0
144
2
UnsupportedOperationException 발생
0
163
3
H2 Database 연결이 안됩니다.
0
128
2
연관관계 매핑 질문드립니다.
0
128
2
h2데이터베이스 실행오류
0
144
2
persistence.xml
0
154
2
양방향 연관관계에서 연관관계의 주인(mappedBy)을 왜 꼭 정해야 하나요?
0
122
1
영속성 컨텍스트
0
102
1
JPA 프록시
0
135
1
Native Query와 MyBatis
0
112
1
영속성 컨텍스트는 어떤 메모리에 저장되는건가요?
0
124
1
임베디드 타입 예시 코드 관련 질문
0
168
3





