Salut à tous,
Waouu j'ai enfin la chance de faire du java 1.5 sur un vrai projet...
Mais je me pose des questions à propos des enum. Et malgré les différents tuto, il y a un truc que je ne comprend pas...
En gros, j'ai un enum comme suit :
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
24
25
26
27
28 public enum LanguageEnum { FR("fr"), EN("en"); private final String code; LanguageEnum(final String code) { this.code = code; } public final String getCode() { return code; } public final LanguageEnum valueOfByCode(final String code) { for (LanguageEnum languageEnum : values()) { if (languageEnum.getCode().equals(code)) { return languageEnum; } } throw new IllegalArgumentException("The specified code (" + code + ") is not supported by this version."); } }
En base, cet enum a une correspondance. Il y a bien entendu le code mais aussi un id. Et c'est cet id qui est utilisé dans les autres tables :
C'est utilisé dans d'autres tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Table language * id : int (pk) * code : varchar
Mais ce que je ne comprend pas, c'est comment JPA fait le lien entre le code et le id...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 Table traduction * id * ref * label * language_id (fk) <-- ici la clé de language
Là où ça devient plus dur, c'est que mon enum dépend de lui même :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public enum LanguageEnum { FR("fr"), EN("en"); ... // Traduction du libellé de la langue selon les différents languageEnum Map<LanguageEnum, String> traduction; ...
Partager