У меня есть 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, чтобы я мог сделать что-то подобное в моем коде Java:
(предположим, что текущим языком приложения является американский английский)
myData.getCountryCode(currentLocale.getlanguage()); --> returns 'France'
myData.getLanguageCode(currentLocale.getlanguage()); --> returns 'French'
Обратите внимание, что я не могу изменить схему БД, которую я сам не проектировал!