Problème insertion dans la B.D, formulaire JSF + Hibernate
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:
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:
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:
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:
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();
} |