Bonjour,

Dans le cadre de ma formation, je dois développer une appli pour une bibliothèque associative le but et de permettre au bénévole de faire des actions CRUD sur les fiches des lecteurs

Dans un formulaire livre je dois persister les infos des livre dans une table LIVRE(logique) mais j'ai également deux sélect box, l'une qui offre les auteur et l'autre les éditeurs et je ne sais comment persister les infos des selectbox dans leur table respectives (Auteur et Editeur donc..).

Voici le message renvoyé lorsque je souhaite persister ma fiche.


Voici le code de la page Liste.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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
 
 
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package DefaultPackage;
 
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.persistence.EntityManager;
import javax.persistence.Query;
 
@ManagedBean
@RequestScoped
public class beanManager {
 
    public beanManager() {
    }
 
    @EJB
    public ejbAuteur ejbauteur;
    @EJB
    public ejbEditeur ejbediteur;
    @EJB
    public ejbLivre ejblivre;
    @EJB
    public ejbCd ejbcd;
    @EJB
    public ejbTitre ejbtitre;
 
    public Auteur auteur = new Auteur();
    public Livre livre = new Livre();
    public Editeur editeur = new Editeur();
    public Cd cd = new Cd();
    public Titre titre = new Titre();
    public List<Livre> livreList; 
    public List<Livre> rechercheLivreList;
    public List<Editeur> rechercheEditeurList;
    public List<Editeur> editeurList;
    public List<Editeur> nomediteurList;
    public List<Auteur> rechercheAuteurList;
    public List<Auteur> auteurList;
    public List<Auteur> nomauteurList;
    public List<Cd> rechercheCdList;
    public List<Cd> cdList;
    public List<Titre> rechercheTitreList;
    public List<Titre> titreList;
    public List rechercheList;
 
 
 
 
    public String nomRecherche;
 
 
 
 
 
    // METHODS
    public String doCreateAuteur(){
        ejbauteur.createAuteur(auteur);
        return "index.xhtml";        
    }
 
    public String doFindAllAuteur(){
        auteurList = ejbauteur.findAllAuthor();
        return "index.xhtml";
    }
 
    public String doFindAuthorName(){
       nomauteurList = ejbauteur.findAuthorName();
       return "index.xhtml";
     }
 
    public String doCreateEditeur(){
        ejbediteur.createEditeur(editeur);
        return "index.xhtml";
    }
 
     public String doFindAllEditeur(){
       editeurList = ejbediteur.findAllEditeur();
        return "index.xhtml";
    }
 
 
 
     public String doFindEditeur(){
       nomediteurList = ejbediteur.findEditeur();
       return "index.xhtml";
     }
 
 
    public String doCreateLivre(){
        ejblivre.createLivre(livre);        
        return "index.xhtml";
    }
 
    public String doFindOfLivre(){
        livreList = ejblivre.findOfLivre();
        return "index.xhtml";
    }
 
    public String doCreateCd(){
        ejbcd.createCd(cd);
        ejbtitre.createTitre(titre);
        return "index.xhtml";
    }
 
    public String doFindAllCds(){
        cdList = ejbcd.findAllCds();
        return "index.xhtml";
    }
 
    public String doFindAllTables(){
 
 
        return "index.xhtml";
    }
 
    public String doFindAllTitre(){
        titreList = ejbtitre.findAllTitre();
        return "index.xhtml";
    }
 
    public String doRechercheAll(){
        rechercheAuteurList = ejbauteur.rechercheAuteur(nomRecherche);
        rechercheEditeurList = ejbediteur.rechercheEditeur(nomRecherche);
        rechercheCdList = ejbcd.rechercheCd(nomRecherche);
        rechercheLivreList = ejblivre.rechercheLivre(nomRecherche);
        rechercheTitreList = ejbtitre.rechercheTitre(nomRecherche);       
        return "recherche.xhtml";
 
    }
 
 
    public Auteur getAuteur() {
        return auteur;
    }
 
    public void setAuteur(Auteur auteur) {
        this.auteur = auteur;
    }
 
    public Cd getCd() {
        return cd;
    }
 
    public void setCd(Cd cd) {
        this.cd = cd;
    }
 
    public Editeur getEditeur() {
        return editeur;
    }
 
    public void setEditeur(Editeur editeur) {
        this.editeur = editeur;
    }
 
    public ejbAuteur getEjbauteur() {
        return ejbauteur;
    }
 
    public void setEjbauteur(ejbAuteur ejbauteur) {
        this.ejbauteur = ejbauteur;
    }
 
    public ejbCd getEjbcd() {
        return ejbcd;
    }
 
    public void setEjbcd(ejbCd ejbcd) {
        this.ejbcd = ejbcd;
    }
 
    public ejbEditeur getEjbediteur() {
        return ejbediteur;
    }
 
    public void setEjbediteur(ejbEditeur ejbediteur) {
        this.ejbediteur = ejbediteur;
    }
 
    public ejbLivre getEjblivre() {
        return ejblivre;
    }
 
    public void setEjblivre(ejbLivre ejblivre) {
        this.ejblivre = ejblivre;
    }
 
    public Livre getLivre() {
        return livre;
    }
 
    public void setLivre(Livre livre) {
        this.livre = livre;
    }
 
    public List<Auteur> getAuteurList() {
        return ejbauteur.findAllAuthor();
    }
 
    public void setAuteurList(List<Auteur> auteurList) {
        this.auteurList = auteurList;
    }
 
    public List<Cd> getCdList() {
        return ejbcd.findAllCds();
    }
 
    public void setCdList(List<Cd> cdList) {
        this.cdList = cdList;
    }
 
    public List<Editeur> getEditeurList() {
        return ejbediteur.findAllEditeur();
    }
 
    public void setEditeurList(List<Editeur> editeurList) {
        this.editeurList = editeurList;
    }
 
    public List<Livre> getLivreList() {
        return ejblivre.findOfLivre();
    }
 
    public void setLivreList(List<Livre> livreList) {
        this.livreList = livreList;
    }
 
    public List<Editeur> getNomediteurList() {
        return ejbediteur.findEditeur();
    }
 
    public void setNomediteurList(List<Editeur> nomediteurList) {
        this.nomediteurList = nomediteurList;
    }
 
    public List<Auteur> getNomauteurList() {
        return ejbauteur.findAuthorName();
    }
 
    public void setNomauteurList(List<Auteur> nomauteurList) {
        this.nomauteurList = nomauteurList;
    }
 
    public String getNomRecherche() {
        return nomRecherche;
    }
 
    public void setNomRecherche(String nomRecherche) {
        this.nomRecherche = nomRecherche;
    }
 
    public List getRechercheList() {
        return rechercheList;
    }
 
    public void setRechercheList(List rechercheList) {
        this.rechercheList = rechercheList;
    }
 
    public Titre getTitre() {
        return titre;
    }
 
    public void setTitre(Titre titre) {
        this.titre = titre;
    }
 
    public List<Titre> getTitreList() {
        return ejbtitre.findAllTitre();
    }
 
    public void setTitreList(List<Titre> titreList) {
        this.titreList = titreList;
    }
 
    public ejbTitre getEjbtitre() {
        return ejbtitre;
    }
 
    public void setEjbtitre(ejbTitre ejbtitre) {
        this.ejbtitre = ejbtitre;
    }
 
    public List<Auteur> getRechercheAuteurList() {
        return ejbauteur.rechercheAuteur(nomRecherche);
    }
 
    public void setRechercheAuteurList(List<Auteur> rechercheAuteurList) {
        this.rechercheAuteurList = rechercheAuteurList;
    }
 
    public List<Cd> getRechercheCdList() {
        return ejbcd.rechercheCd(nomRecherche);
    }
 
    public void setRechercheCdList(List<Cd> rechercheCdList) {
        this.rechercheCdList = rechercheCdList;
    }
 
    public List<Editeur> getRechercheEditeurList() {
        return ejbediteur.rechercheEditeur(nomRecherche);
    }
 
    public void setRechercheEditeurList(List<Editeur> rechercheEditeurList) {
        this.rechercheEditeurList = rechercheEditeurList;
    }
 
    public List<Livre> getRechercheLivreList() {
        return ejblivre.rechercheLivre(nomRecherche);
    }
 
    public void setRechercheLivreList(List<Livre> rechercheLivreList) {
        this.rechercheLivreList = rechercheLivreList;
    }
 
    public List<Titre> getRechercheTitreList() {
        return ejbtitre.rechercheTitre(nomRecherche);
    }
 
    public void setRechercheTitreList(List<Titre> rechercheTitreList) {
        this.rechercheTitreList = rechercheTitreList;
    }
}
Ma page 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
 
<?xml version="1.0" encoding="UTF-8"?>
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core">
    <head>
        <title>Création de la fiche Livre</title>
    </head>
    <body>
        <div align="center">Création de la fiche Livre</div>
        <div align="center">    
            <h:form>
                <h:panelGrid columns="2">
                    <h:outputLabel value="Editeur"/>
                    <h:selectOneMenu value="#{beanManager.livre}">
                        <f:selectItems value="#{beanManager.nomediteurList}">
                            // A voir Converter - probleme il ne persiste pas il renvoie null
                        </f:selectItems>                   
                    </h:selectOneMenu> 
                    <h:outputLabel value="Auteur"/>
                    <h:selectOneMenu value="#{beanManager.auteur}">
                        <f:selectItems value="#{beanManager.nomauteurList}">
                           // A voir Converter - probleme il ne persiste pas il renvoie null
                        </f:selectItems>                   
                    </h:selectOneMenu>
                    <h:outputLabel value="Nom"/>
                    <h:inputText value="#{beanManager.livre.nom}"/>
                    <h:outputLabel value="Isbn"/>
                    <h:inputText value="#{beanManager.livre.isbn}"/>              
                    <h:outputLabel value="Nombre de page"/>
                    <h:inputText value="#{beanManager.livre.nbOfPage}"/>               
                </h:panelGrid>
                <h:commandButton value="créer la fiche" action="#{beanManager.doCreateLivre()}"/>  
                <h:form> 
                    <h:commandButton value="Retour" action="index"/>
                </h:form>
            </h:form>
 
        </div>    
    </body>
</html>
Si vous avez une idée?