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)
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 public Boolean EnregistrerBo(Facture f) { session.beginTransaction(); session.save(f); session.getTransaction().commit(); session.close(); return true; }
ManagedBean FournisseurBean:
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; }
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 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; } }
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?
Partager