Bonjour,
j'ai pas mal de propriétés dans un bean hibernate, exploité par un formulaire JSF, qui sont du même type. Pour des raisons d'économie, au lieu d'avoir 50 tables reprenant les différentes listes de valeurs possible pour les 50 champs différents et avoir du coup 50 beans hibernate du style "SelectCategorieHoraire" "SelectBatiment" "SelectNiveau" "SelectStatus", .... nous avons opté pour une liste générique "SelectEntry" avec une colonne suplémentaire "ListKey" et chaque champ pointant vers cette SelectEntry a une contrainte supplémentaire sur la clé à utiliser.
Bref, pour le moment, le bean ressemble à ça, SelectKey état une annotation utilisant l'api bean validation que je commence à introduire. Donc on pourra, je pense, valider l'exactitude des données (c'est en cours, c'est un autre problème).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
/**
* @return the missionDuration
*/
@JoinColumn(name="EMP_MISSION_DURATION")
@ManyToOne(cascade={javax.persistence.CascadeType.MERGE},fetch=FetchType.LAZY)
@Cascade(value={CascadeType.LOCK})
@SelectKey("missionLength")
public SelectEntry getMissionDuration() {
return missionDuration;
}
/**
* @return the maritalStatus
*/
@JoinColumn(name="EMP_MARITAL_STATUS")
@ManyToOne(cascade={javax.persistence.CascadeType.MERGE},fetch=FetchType.LAZY)
@Cascade(value={CascadeType.LOCK})
@SelectKey("maritalStatus")
public SelectEntry getMaritalStatus() {
return maritalStatus;
} |
Maintenant le coeur du problème coté JSF. J'utilise pour le moment un composant custom pour sélectionner parmis ces listes, recevant la clé en paramètre pour n'afficher que les entrées acceptables:
<hr:selectEntry id="duration" key="missionLength" value="#{hrSession.employee.missionDuration}"/>
et j'aimerais bien éviter la double notation entre JSF et le Bean. Pour cela, je cherche à savoir comment mon composant, à partir de "#{hrSession.employee.missionDuration}" peut déterminer qu'il s'agit de la propriété "missionDuration" d'une instance de Employee et ainsi lire les annotations de cette propriété.
Est-ce possible ou est-ce que je me heurte à un mur?
Partager