Créer et persister une entitée avec relation @ManyToOne
Bonjour,
Je cherche surtout une bonne pratique concernant la création + persistence d'une entité.
Voila, j'ai une classe @Entity Affaire avec ses propriétés et ceci:
Code:
1 2 3 4 5 6 7 8 9
| @JoinColumn(name = "IDCONTACT", referencedColumnName = "IDCONTACT")
@ManyToOne
private Contact contact;
@JoinColumn(name = "IDCLIENT", referencedColumnName = "IDCLIENT", nullable=false)
@ManyToOne
private Client client;
@JoinColumn(name = "IDCHARGEAFFAIRE", referencedColumnName = "IDCHARGEAFFAIRE")
@ManyToOne
private ChargeAffaire chargeAffaire; |
Bien entendu les classes Client, ChargeAffaire et Contact font référence à Affaire
Maintenant dans la page JSF pour la création d'une affaire j'ai des h:selectOneListbox qui obtiennent leurs f:selectItems de différents managed bean (ClientCtrlBean, ChargeAffaireCtrlBean).
J'espère être clair jusque là.
Donc sur ma page JSF lorsque je selectionne une valeur dans un de mes combobox, il me renvoie un (int, long,...), et pas l'objet en question.
Ce qui fait que dans mon managed-bean AffaireCtrlBean, je dois faire des findBy(idClient) pour re-récupérer le client sélectionné.
Je trouve cela un peu tordu, et peu performant.
N'est-il pas possible de récupérer LE client selectionné directement du style:
Code:
1 2 3 4 5
|
<h:outputText value="#{bundle.nomClient} :"/>
<h:selectOneListbox value="#{affaireCtrlBean.affaire.client}" size="1">
<f:selectItems value="#{clientCtrlBean.selectItemClientsAll}" />
</h:selectOneListbox> |
Comment faites-vous pour améliorer ce processus?
Merci, et j'espère avoir été assez clair.