I have 2 tables :
The table Data
: id
, plus many fields. Some of these fields are 'codes' which reference multilanguage values from the next table, for example country_code
, continent_code
.
The table Thesaurus
which contains the multilanguage codes, with columns: code
, code_type
, language
, text
. Code is unique for one code_type
but there might be the same code several times with different 'code_type' values.
Example data from this table :
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
So the country_code
column of the data table might contain 'FR'
or 'US'
, and the language code
column might contain 'FR'
as well. It is implicit that the country_code
column contains a code of type 'CNT'
for country, and the language_code
column contains a code of type 'LNG' for language.
How can I map this in Hibernate so that I can do something like that in my Java code : (let's assume the current locale of the app is US English)
myData.getCountryCode(currentLocale.getlanguage()); --> returns 'France'
myData.getLanguageCode(currentLocale.getlanguage()); --> returns 'French'
Note that I can not modifiy the DB schema, which I didn't design myself !