Bonjour à tous,


je voudrais créer une table de tradution pour les pays

Je voudrais les entities

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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?