Bonjour Mon projet est fait de JSF(Primefaces) + Hibernate(Reverse à partir de la B.D).
J'ai une table employé qui contient 2 clé étrangères( teamleaderId + formateurId). Dans le formulaire d'ajout d'un nouveau employé j'ai réussi à afficher dans une SelectOneMEnu teamleaderId + formateurId sous forme de nom afin de récupérer leurs ID
Voir l'image
Mais lors de l'enregistrement rien ne ce passe , quelque svp peut m'aider j'ai passé 4 jours à essayer de résoudre ce problème.
Merci

JSF :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<p:dialog widgetVar="dlgEmployer" resizable="true"  height="450" width="450" header="Ajout Employé" position="center">
 
                        <p:panelGrid columns="2" style="margin-bottom:10px" >
                            <h:outputText value="Adresse"/>
                            <p:inputText id="adresse3" value="#{employerController.employers.adresse}" required="true" requiredMessage="Le champ adresse est obligatoire"/>
 
                            <h:outputText value="Cin"/>
                            <p:inputText id="cin3" value="#{employerController.employers.cin}" required="true" requiredMessage="Le champ nom cin est obligatoire"/>
 
                             <h:outputText value="Compte"/>
                             <p:selectOneMenu value="#{employerController.employers.compte}">  
                                 <f:selectItem itemLabel="Select One" itemValue="" />  
                                 <f:selectItem itemLabel="AFPA" itemValue="1" />  
                                 <f:selectItem itemLabel="GDF Suez" itemValue="2" />  
                                 <f:selectItem itemLabel="Eletrabel" itemValue="3" />  
                             </p:selectOneMenu>  
 
 
                            <h:outputText value="Email"/>
                            <p:inputText id="email3" value="#{employerController.employers.email}" required="true" requiredMessage="Le champ email categorie est obligatoire"/>
 
 
                            <h:outputText value="Nom"/>
                            <p:inputText id="nom3" value="#{employerController.employers.nom}" required="true" requiredMessage="Le champ nom est obligatoire"/>
 
                            <h:outputText value="Prenom"/>
                            <p:inputText id="prenom3" value="#{employerController.employers.prenom}" required="true" requiredMessage="Le champ prenom est obligatoire"/>
 
                            <h:outputText value="Pseudo"/>
                            <p:inputText id="pseudo3" value="#{employerController.employers.pseudo}" required="true" requiredMessage="Le champ pseudo est obligatoire"/>
 
                            <h:outputText value="Sexe"/>
                            <p:selectOneRadio id="sexe5" value="#{employerController.employers.sexe}" required="true" requiredMessage="Le champ sexe est obligatoire">  
                                <f:selectItem itemLabel="Homme" itemValue="Homme" />  
                                <f:selectItem itemLabel="Femme" itemValue="Femme" />  
                            </p:selectOneRadio> 
 
 
 
                            <h:outputText value="Telephone"/>
                            <p:inputText id="telephone3" required="true" value="#{employerController.employers.telephone}"/> 
 
                            <h:outputText value="Formateur"/>
                            <h:selectOneMenu id="Formateurcombo" value="#{employerController.employers.formateur.formateurId}"> 
                                <f:selectItems value="#{employerController.listformateurname}" var="s" itemValue="#{s.formateurId}" itemLabel="#{s.nom}" />
                            </h:selectOneMenu>
 
                            <h:outputText value="Team leader"/>
                            <h:selectOneMenu id="selectListTeamLeader" value="#{employerController.employers.teamleader.teamleaderId}">
                                <f:selectItems value="#{employerController.listteamleadername}" var="s" itemValue="#{s.teamleaderId}" itemLabel="#{s.nom}" />
 
                            </h:selectOneMenu>
 
                            <p:commandButton value="enregistrer" id="eng1" actionListener="#{employerController.ajouter(actionEvent)}" update="dataemployer" oncomplete="dlgEmployer.hide()"/>
 
                        </p:panelGrid> 
                        <pe:keyFilter for="telephone3" mask="num"/> 
                        <pe:keyFilter for="email3" regEx="/[a-z0-9_\.\-@]/i"/>  
 
                    </p:dialog>
EmployerController :

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
@ManagedBean
@SessionScoped
@ViewScoped
 
public class EmployerController {
 
    private Employer employer;
 
    private DataModel listEmployers;
    private DataModel listformateurname;
    private DataModel listteamleadername;
    private Employer selectedEmployer;  
    private Employer[] selectedEmployers;
    private List<Employer> filteredEmployers;
 
 
 
 
    public DataModel getListteamleadername() {
        List<Teamleader> lista1 = new TeamleaderDao().list();
 
        listteamleadername = new  ListDataModel(lista1);
        return listteamleadername;
    }
 
    public void setListteamleadername(DataModel listteamleadername) {
        this.listteamleadername = listteamleadername;
    }
 
 
 
 
    public DataModel getListformateurname() {
 
 
        List<Formateur> lista = new FormateurDao().list();
        listformateurname = new  ListDataModel(lista);
        return listformateurname;
 
    }
 
    public void setListformateurname(DataModel listformateurname) {
        this.listformateurname = listformateurname;
    }
 
public void ajouter(ActionEvent actionEvent){
        InterfaceEmployer dao = new EmployerDao();
        dao.enregistrer(employer);
    }
Classe model Employer :

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
 
public class Employer  implements java.io.Serializable {
 
 
     private Integer employerId;
     private Teamleader teamleader;
     private Formateur formateur;
     private String adresse;
     private String cin;
     private String compte;
     private String email;
     private String nom;
     private String prenom;
     private String pseudo;
     private String sexe;
     private String telephone;
     private Set<Inscription> inscriptions = new HashSet<Inscription>(0);
// Constructeur + get/set
Employer Dao :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public class EmployerDao implements InterfaceEmployer{
 
    @Override
    public void enregistrer(Employer employer) {
        Session ss= HibernateUtil.getSessionFactory().getCurrentSession();
        ss.beginTransaction();
        ss.save(employer);
 
        ss.beginTransaction().commit();
    }