Salve a tutti,

Sto cercando di mappare delle tabelle in un database con la seguente struttura. (utilizzando il framework hibernate)

codice:
+-------------+                     +-----------------+                        +----------------+
|country      |                     |  country_i18n   |                        | language       |
+-------------+ 1..1 --------- 0..n +-----------------+ 0..n ------------- 1..1+----------------+
| id (pk)     |                     | id (pk)         |                        | id (pk)        |
| code (uk)   |                     | name            |                        | code (uk)      |
+-------------+                     | language_id (fk)|                        | name           |
                                    | country_id (fk) |                        +----------------+
                                    +-----------------+
Lo scopo finale è quello di poter gestire l'internazionalizzazione a livello dei dati (nome delle località, nazioni, e altri termini,...)
Vorrei fare in modo di mappare in uno di questi modi:
1) country e countryI18n diventano in una sola classe i18n
2) country come classe astratta e countryI18n che eredita da country
3) composizione fra country e countryi18n senza usare delle collezioni (quindi invece di avere List<CountryI18n> nella classe country ci sarebbe solo CountryI18n country) --> sarebbe la soluzione che desidererei

In pratica il risultato sarebbe:
1) soluzione 1
codice:
public class CountryI18n {
  Integer id
  String code
  String nome_tradotto
}
Soluzione 2)
codice:
public abstract class Country {
   Integer id
   String code
}
public class CountryI18n extends Country {
  String nome_tradotto
  Language language
}
Soluzione 3)
codice:
public class Country {
   Integer id
   String code
   CountryI18n paese_tradotto
}
public class CountryI18n {
 Integer id
 String nome_tradotto
 Language language
}
Come potrei fare per mappare le classi in uno dei tre modi. Secondo voi quale soluzione è la più elegante e concettualmente giusta?

Grazie