이 이상한 다이어그램을 이해할 수 있을지 모르겠습니다 ... RegionLanguage에는 Region.id를 가리키는 일종의 외래 키가 있습니다. Region에 단 하나의 열만 있으면 ('다이어그램'에 표시된 것처럼) 'RegionLanguage'만 매핑하면 원하는대로 하나의 엔티티 만 갖게됩니다. --- 손실 된 정보 없음).
하지만 진지하게 어떻게 매핑하고 싶습니까? 이 같은
class Region {
//.. the missing fields not shown in diagram
List<String> languages; // take only language to avoid creating separate entity for region language
}
또는 무언가 : 당신은 같은 것을 갖고 싶어 마십시오 테이블의 나머지는 당신의 국제화 테이블과 결합하는 방법을 언급하지 않았다 어떤 경우
class RegionInnerJoinRegionLanguage {
// all fields from Region
// all fields from RegionLanguage
}
합니다. 귀하의 설명에서, 나는 모든 테이블이 RegionLanguage에 fk를 가지고 있다고 생각합니다. 나는 지역 테이블이 사물의 웅대 한 계획에 어떤 용도로 사용되는지 모르겠습니다. 나는 그것이 언어 그룹화를위한 것 같아요 ... 나는이 '모델'스위스 (하나의 '지역'4 개 언어)를 상상합니다 ...하지만 여러 지역에서 사용되는 언어로 무엇을 할 것입니까? 프랑스, 영어 등 여러 언어 (각 지역마다 하나씩)를 가지려고하고 있으며 각 언어에 대한 모든 데이터가 곱 해져 있습니까?
나는 이것을 묻지 않는다는 것을 안다. 나는이 질문에 대해 당신의 데이터 구조를 단순화 시켰다고 생각한다 ... 너무 많이 당신이 정말로 달성하기를 원하는 것을 추측하기가 어렵다. 당신은 문자열의 접근 방법의 목록을 사용하려는 경우 어떤 경우
, 당신이 시도 할 수 있습니다 : 당신은 하나의 개체로 두 테이블을 넣어하려는 이유
@ElementCollection
@CollectionTable(name="RegionLanguage",
[email protected](name="regionID") // or whatever... it's not on your diagram.
)
@Column(name="langage")
private List<String> langages;
이 난 아직도 이해가 안 .. . '읽기 전용'데이터 인 경우보기를 작성하고 매핑하면됩니다. 항상 '출구'로 표시됩니다.). 그러나 그것은 내 마음에 (사실 그들 둘 모두의) 과잉 합병증입니다. 그것은 미래에 당신을 물으려 할 것입니다. 나의 충고는 '단순한 OneToMany 매핑'을 사용하는 것이다.
이 문제에 대한 해결책을 찾았습니까? 그렇다면 대답 해 주시겠습니까? 우리는 같은 문제에 직면 해 있습니다. 아직 멋진 솔루션을 찾지 못했습니다. 대부분 N + 1 쿼리 결과이며, 우리는이를 원하지 않습니다. – wimvds
어떤 JPA 공급자를 사용하고 있습니까? – siebz0r
지역 및 지역 언어 간의 간단한 @OneToMany 연결이 왜 효과가 없는지 완전히 이해하지 못합니까? –