Bonjour tout le monde
J'ai un petit souci au niveau de l'ajout d'un enregistrement dans la BD, et je demande votre aide s'il vous plait.
En fait j'ai deux tables: Facture et Fournisseur, avec une cardinalité ManyToOne du coté de la table Facture, et OneToMany du coté de la table Fournisseur.
Je veux ajouter une facture à la BD en remplissant tous ses champs dans un formulaire JSF, et parmi les informations à fournir à la facture il y’a celle concernant le fournisseur.

Je vous communique quelque bouts du code:

ManagedBean FactureBean: (action du bouton de la page 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
 
public String EnregistrerFactureBo()
    {
        // Informations concernant le fournisseur:
        fournisseur.setSociete(fournisseur.getSociete());
        fournisseur.setAdresse(fournisseur.getAdresse());
        fournisseur.setEmail(fournisseur.getEmail()); 
 
        Engagement e = factureDao.Find_Engagement(IdEngagement);
        Statut s = factureDao.Find_Statut(IdStatut);
        Utilisateur u = factureDao.Find_Utilisateur(CodeUtilisateur);
        Fournisseur f = fournisseurDao.AjoutFournisseur(fournisseur);
 
        if(f!=null)
        {
 
        Date date = new Date( System.currentTimeMillis() );
        // SimpleDateFormat sdf = new SimpleDateFormat( "dd/MM/yyyy hh:mm:ss" );
        // System.out.println( sdf.format( date ) );
 
        facture.setNumeroFacture(facture.getNumeroFacture());
        facture.setReference(facture.getReference());
        facture.setEngagement(e);
        facture.setFournisseur(fournisseur);
        facture.setMontant(facture.getMontant());
        facture.setStatut(s);
        facture.setUtilisateur(u);  // Je dois récupérer l'User connécté!!!!
 
        facture.setDateReceptionPhysique(date);
        facture.setDateReceptionSysteme(date);
        }
 
        Boolean resultat = factureDao.EnregistrerBo(facture);
 
        if(resultat==true)
        {
            return "index";
        }
        else
        {
            return "echec";
        }
 
    }

FactureDAO: (fonction d'ajout de la facture)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
 public Boolean EnregistrerBo(Facture f)
    {
        session.beginTransaction();
        session.save(f);
        session.getTransaction().commit();
        session.close();
        return true;
    }
FournisseurDAO: (fonction d'ajout du fournisseur)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 public Fournisseur AjoutFournisseur(Fournisseur f)
    {        
 
        Session session =sessionFactory.openSession();
        session.beginTransaction();
        session.save(f);
        session.getTransaction().commit();
        session.close();
 
        return fournisseur;
    }
ManagedBean FournisseurBean:
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
 
 
package Beans;
 
import Entités.Fournisseur;
import javax.faces.bean.ManagedBean;
 
@ManagedBean
public class FournisseurBean {
 
    private Fournisseur fournisseur = new Fournisseur();
 
    // Constructeur:
 
    public FournisseurBean() {
        this.fournisseur = new Fournisseur();
    }
 
 
    // Setters et Getters:
 
    public Fournisseur getFournisseur() {
        return fournisseur;
    }
 
    public void setFournisseur(Fournisseur fournisseur) {
        this.fournisseur = fournisseur;
    }
 
 
}
Ma page 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
61
62
63
64
 
<h:form>
            <p:growl id="msg" showDetail="true" life="3000" />
            <p:panel id="panel" header="Enregistrement d'une facture" style="width: 600px;">
                <p:messages id="msgs" />
                    <h:panelGrid  columns="3" cellpadding="5">
 
                    <p:outputLabel for="NuméroFacture" value="Numéro Facture:"  />
                    <p:inputText  id="NuméroFacture" label="NuméroFacture" value="#{factureBean.facture.numeroFacture}" required="true">
                    <f:validateLength minimum="2" />
                    </p:inputText> <br/>
 
                    <p:outputLabel for="Référence" value="Référence:"  />
                    <p:inputText  id="Référence" label="Référence" value="#{factureBean.facture.reference}" required="true">
                    <f:validateLength minimum="2" />
                    </p:inputText> <br/>
 
                    <p:outputLabel value="Engagement:" />
                    <p:selectOneMenu value="#{factureBean.idEngagement}" >
				<f:selectItem itemLabel="select one..." itemValue="" />
                                <f:selectItems var="cat"   value="#{factureBean.listeTypeEngagement}" itemLabel="#{cat.typeEngagement}" itemValue="#{cat.idEngagement}" />
                    </p:selectOneMenu>
                    <p:spacer></p:spacer>
 
                    <p:outputLabel for="Société" value="Fournisseur: (Société):"  />
                    <p:inputText  id="Société" label="Société" value="#{fournisseurBean.fournisseur.societe}" required="true">
                    <f:validateLength minimum="2" />
                    </p:inputText> <br/>
 
                    <p:outputLabel for="AdresseFournisseur" value="Adresse Fournisseur"  />
                    <p:inputText  id="AdresseFournisseur" label="AdresseFournisseur" value="#{fournisseurBean.fournisseur.adresse}" required="true">
                    <f:validateLength minimum="2" />
                    </p:inputText> <br/>
 
                    <p:outputLabel for="EmailFournisseur" value="Email Fournisseur:"  />
                    <p:inputText  id="EmailFournisseur" label="EmailFournisseur" value="#{fournisseurBean.fournisseur.email}" required="true">
                    <f:validateLength minimum="2" />
                    </p:inputText> <br/>
 
                    <p:outputLabel for="Montant" value="Montant Facture:"  />
                    <p:inputText  id="Montant" label="Montant" value="#{factureBean.facture.montant}" required="true">
                    <f:validateLength minimum="2" />
                    </p:inputText> <br/>
 
                    <p:outputLabel value="Statut:" />
                    <p:selectOneMenu value="#{factureBean.idStatut}" >
				<f:selectItem itemLabel="select one..." itemValue="" />
                                <f:selectItems var="cat"   value="#{factureBean.listeIntituleStatut}" itemLabel="#{cat.intituleStatut}" itemValue="#{cat.idStatut}" />
                    </p:selectOneMenu>
                    <p:spacer></p:spacer>
 
                    <p:outputLabel value="Utilisateur:" />
                    <p:selectOneMenu value="#{factureBean.codeUtilisateur}" >
				<f:selectItem itemLabel="select one..." itemValue="" />
                                <f:selectItems var="cat"   value="#{factureBean.listeLogin}" itemLabel="#{cat.login}" itemValue="#{cat.codeUtilisateur}" />
                    </p:selectOneMenu>
                    <p:spacer></p:spacer>
 
                    <p:commandButton value="Enregistrer" action="#{factureBean.EnregistrerFactureBo()}" update="panel" icon="ui-icon-check" ajax="false">
                    </p:commandButton>
 
                </h:panelGrid>
            </p:panel>
        </h:form>

J'arrive à ajouter la facture à la base de données, mais qu'on je fais un select sur le nom du fournisseur par exemple depuis la table fournisseur, on m'affiche qu'in y a 10 lignes sélectionnées mais je n'arrive pas à les visualiser. Quelqu'un a une idée sur le problème s'il vous plait?