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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Table language
* id : int (pk)
* code : varchar
C'est utilisé dans d'autres tables :

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
Mais ce que je ne comprend pas, c'est comment JPA fait le lien entre le code et le id...

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;
 
        ...