Bonjour,
je fais un projet web en j2ee JSF + primefaces 3.5
premièrement je fais le mapping de la base données et les tables avec hibernate
je crée le fichier hibernate.cfg.xml et hibernate.reveng.xml aussi je cree le fichier hibernate mapping files et pojos from databases et hibernate util
j'ai une base de données nommée base et un table nommé compte
je crée une interface java nommée compteDao et des méthodes abstraites aussi je crée un autre fichier java class pour implémentation des méthodes abstraites et ils fonctionnent correctement.
Fichier compteDao

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
package com.projet.dao;
 
import com.projet.compte.Compte;
import java.util.List;
 
public interface compteDao {
     public void inserer(Compte compte);
    public void mettre_ajour(Compte compte);
    public void supprimer(Compte compte); 
    public Compte rechercherCodeemp(Integer id);
    public  List<Compte> rechercher();
}
Fichier compteDaoImpl
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
61
62
63
64
65
66
67
68
69
 
package com.projet.dao.impl;
 
import com.projet.compte.Compte;
import com.projet.dao.compteDao;
import com.projet.util.HibernateUtil;
import java.util.List;
import org.hibernate.Session;
 
 
public class compteDaoImpl implements compteDao{
 
 
    @Override
    public void inserer(Compte compte) {
        Session session = HibernateUtil.getSessionFactory().openSession(); 
        try{
            session.beginTransaction();
            session.save(compte);
            session.beginTransaction().commit();
 
        }catch(Exception e){
            System.out.println("errreur insertion"+e.getMessage());
            session.beginTransaction().rollback();
        }
 
    }
 
    @Override
    public void mettre_ajour(Compte compte) {
    Session session = HibernateUtil.getSessionFactory().openSession(); 
        try{
            session.beginTransaction();
            session.update(compte);
            session.beginTransaction().commit();
 
        }catch(Exception e){
            System.out.println("errreur mise a jour"+e.getMessage());
            session.beginTransaction().rollback();
        }    }
 
    @Override
    public void supprimer(Compte compte) {
    Session session = HibernateUtil.getSessionFactory().openSession(); 
        try{
            session.beginTransaction();
            session.delete(compte);
            session.beginTransaction().commit();
 
        }catch(Exception e){
            System.out.println("errreur suppression"+e.getMessage());
            session.beginTransaction().rollback();
        }    }
 
    @Override
    public Compte rechercherCodeemp(Integer id) {
            Session session = HibernateUtil.getSessionFactory().openSession(); 
            return (Compte) session.load(Compte.class, id);
 
    }
 
    @Override
    public List<Compte> rechercher() {
            Session session = HibernateUtil.getSessionFactory().openSession(); 
               return session.createQuery("from Compte ").list();
 
 
    }
}
deuxièmement je crée un fichier comptebean contient deux attributs
avec deux méthodes pour l'insertion dans le base de données
Fichier cmptebean

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
 
package com.projet.bean;
 
import com.projet.compte.Compte;
import com.projet.dao.compteDao;
import com.projet.dao.impl.compteDaoImpl;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
 
@ManagedBean(name = "CompteBean")
@SessionScoped
 
public class CompteBean {
 
    private Compte compte;
    private List<Compte> comptes;
 
    public CompteBean() {
        compte = new Compte();
    }
    public void preparer (ActionEvent actionEvent){
        compte = new Compte();
    }
 
    public void inserer(ActionEvent actionEvent)
    {
        compteDao cmpt= new compteDaoImpl();
        cmpt.inserer(compte);
        FacesContext context = FacesContext.getCurrentInstance();  
         context.addMessage(null, new FacesMessage("ajout réussi !!!"));
                        compte = new Compte();
 
 
 
    }
    public Compte getCompte() {
        return compte;
    }
 
    public void setCompte(Compte compte) {
        this.compte = compte;
    }
 
    public List<Compte> getComptes() {
        compteDao comptedao = new compteDaoImpl();
        comptes = comptedao.rechercher();
        return comptes;
    }
 
 
 
 
}
dans le fichier index.xhtml

je crée une datatable pour l’affichage et il fonctionne correctement juste je trouve un problème pour l'insertion directement dans la base de données et l'affichage instantanée dans la datatable

fichier index.xhtml
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
61
62
63
64
65
66
67
68
69
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:p="http://primefaces.org/ui">
    <h:head>
        <title>Facelet Title</title>
        <link rel="Stylesheet" type="text/css" href="ressources/css/style.css"/>
    </h:head>
    <h:body>
        <!-- Insertion d'un bouton -->
        <h:form>
            <p:commandButton value="&nbsp; Nouveau utilisateur" image="icon-add"  actionListener="#{CompteBean.preparer(actionEvent)}"
                             oncomplete="user.show();"/>
 
        </h:form><br/>
 
        <!-- Insertion d'un tableau contient l'affichage des tuples a partir base de données-->
        <h:form id="frmcomptes">  
            <p:dataTable  id="table" var="compte" value="#{CompteBean.comptes}"  > 
 
                <p:column headerText="Id" >  
            <h:outputText value="#{compte.id}" />  
        </p:column>  
 
        <p:column headerText="Nom" >  
            <h:outputText value="#{compte.nom}" />  
        </p:column>  
 
        <p:column headerText="Prenom" >  
            <h:outputText  value="#{compte.prenom}" />  
        </p:column>  
 
        <p:column headerText="CIN" >  
            <h:outputText value="#{compte.cin}" />  
        </p:column>  
                  <p:column style="width:10%; text-align: center;">  
                      <p:commandButton update=":frmcomptes" oncomplete="carDialog.show()" image="icon-edit" title="Editer" />  
                <p:commandButton  update=":frmcomptes" oncomplete="carDialog.show()" image="icon-supp" title="Supprimer"/>  
 
        </p:column>
    </p:dataTable>  
    </h:form> 
        <!-- affichage d'un formulaire pour l'ajout d'un nouveau utilisateur-->
        <h:form id="FrmNewuser">
              <p:dialog header="Nouveau utilisateur" widgetVar="user" resizable="false" id="user"  modal="true">  
      <p:growl id="growl" showDetail="true" sticky="true" />  
 
        <h:panelGrid id="newuser" columns="2" cellpadding="4" style="margin:0 auto;">  
                 <h:outputText value="Nom :" />  
                 <h:inputText value="#{CompteBean.compte.nom}" style="font-weight:bold; width: 300px;"/>  
 
            <h:outputText value="Prenom :" />  
            <h:inputText value="#{CompteBean.compte.prenom}" style="font-weight:bold; width: 300px;"/>  
 
 
            <h:outputText value="CIN :" />  
            <h:inputText value="#{CompteBean.compte.cin}" style="font-weight:bold; width: 300px;"/>  
 
               </h:panelGrid>  
            <p:separator />  
            <p:commandButton update=":frmcomptes,growl,table"  oncomplete="user.hide()" actionListener="#{CompteBean.inserer(actionEvent)}" image="icon-save"  value="&nbsp;sauvegarder"  />
        <p:commandButton update=":frmcomptes" oncomplete="user.hide()" image="icon-cancel" value="&nbsp;Annuler" />  
 
    </p:dialog>  
 
</h:form> 
    </h:body>
</html>
S'il est possible de m'aider