JPA2 : Mapping de HashMap pour l'i18n
Bonjour à tous,
je voudrais créer une table de tradution pour les pays
Je voudrais les entities
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| public class Content{
...
Map<Language,ContentI18N> translations;
...
public String getTitle(Language language){
return translations.get(language).getTitle();
}
public String getContent(Language language){
return translations.get(language).getContent();
}
...
}
public class ContentI18N{
public String getTitle(Language language){
return title;
}
public String getContent(Language language){
return content;
}
} |
j'ai 3 tables :
content( id,contentkey)
contenti18n( content_id, language_id,title,content )
language (id,languagekey)
content :
1 | content1
2 | content2
language :
1 | fr
2 | en
contenti18n
1 | 1 | Mon titre en français | Mon texte en français
1 | 2 | English title | English text
en sql pour obtenir toute les entrées il suffit de faire :
SELECT *
FROM `content`
JOIN contenti18n ON content.id = contenti18n.content_id
et pour obtenir une valeur en particulier :
SELECT *
FROM `content`
JOIN contenti18n ON content.id = contenti18n.content_id
where language_id= ?
Je n'ai pas réussi à faire le mapping. Ca doit être possible j'imagine.
J'ai essayé pas mal de truc avec ManyToOne dans l'entity Content sans succès
Quelqu'un sait il comment il faudrait faire?