나는 2 개의 테이블이 있습니다 :최대 절전 모드에서이 관계를 매핑하는 방법은 무엇입니까?
테이블 Data
: id
에 더하여 많은 필드가 있습니다. 이 필드 중 일부는 다음 표의 다국어 값을 참조하는 '코드'입니다 (예 : country_code
, continent_code
).
열 다국어 코드가 포함 된 테이블 Thesaurus
: code
, code_type
, language
, text
을. 코드는 code_type
에 대해 고유하지만 여러 'code_type'값을 사용하여 동일한 코드가 여러 번 나타날 수 있습니다. 이 테이블에서
예 데이터 :
code code_type language text
----------------------------------------------------
USA CNT EN United States
USA CNT FR Etats-Unis
FR CNT EN France
FR CNT FR France
FR LNG EN French
FR LNG FR Français
그래서 데이터 테이블의
country_code
열이
'FR'
또는
'US'
를 포함 할 수 있습니다와
language code
열뿐만 아니라
'FR'
포함되어있을 수 있습니다.
country_code
열에는 국가에 대해
'CNT'
유형의 코드가 포함되고
language_code
열에는 언어에 대해 'LNG'유형의 코드가 포함된다는 암시가 있습니다.
내 자바 코드에 그런 일을 할 수 있도록 내가 Hibernate에서이 매핑 할 수 있습니다 방법 : 이
myData.getCountryCode(currentLocale.getlanguage()); --> returns 'France'
myData.getLanguageCode(currentLocale.getlanguage()); --> returns 'French'
주 (의이 응용 프로그램의 현재 로케일을 가정하자 미국 영어입니다)이 그럴 수 없어 modifiy DB 스키마, 나는 자신을 설계하지 않았다!
감사를 참조하십시오. 나는 추상 클래스 + 상속 매핑 비트를 얻는다. 그것은 좋은 생각 같다. 그러나 데이터 엔터티 측면에서 관계를 매핑하는 방법을 제안 하시겠습니까? joinColumn으로 language_code 열을 사용하는 일대 다? 이 예제에서와 같이 언어 코드를 키로 사용하여 다른 언어에 대한 엔티티가 포함 된지도로 끝내려면 어떻게해야합니까? –
좋아, 알았어 : 관계에 Map을 사용하고 @MapKey 주석을 사용하여 언어가 Map의 키가되도록 지정합니다. –