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