Bonjour ,
Je travaille sur une application web sous Hibernate Spring et JSF et j'ai deux classe Modérateur et compte qui se sont définit comme suit :
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 package ma.it.model; // Generated 23 mai 2012 14:06:20 by Hibernate Tools 3.4.0.CR1 import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.OneToOne; import static javax.persistence.GenerationType.IDENTITY; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; /** * Moderateur generated by hbm2java */ @Entity @Table(name = "moderateur", catalog = "bdd_itrekrute") public class Moderateur implements java.io.Serializable { private Integer idMembre; private Compte compte=new Compte(); private String nom; private String prenom; private String adresse; private Integer tel; private String email; public Moderateur() { } public Moderateur(Compte compte) { } public Moderateur(Compte compte, String nom, String prenom, String adresse, Integer tel, String email, String civilite) { this.compte = compte; this.nom = nom; this.prenom = prenom; this.adresse = adresse; this.tel = tel; this.email = email; } @Id @GeneratedValue(strategy = IDENTITY) @Column(name = "idMembre", unique = true, nullable = false) public Integer getIdMembre() { return this.idMembre; } public void setIdMembre(Integer idMembre) { this.idMembre = idMembre; } @ManyToOne(fetch = FetchType.EAGER) @JoinColumn(name = "login", nullable = false) public Compte getCompte() { return this.compte; } public void setCompte(Compte compte) { this.compte = compte; } @Column(name = "nom", length = 254) public String getNom() { return this.nom; } public void setNom(String nom) { this.nom = nom; } @Column(name = "prenom", length = 254) public String getPrenom() { return this.prenom; } public void setPrenom(String prenom) { this.prenom = prenom; } @Column(name = "adresse", length = 254) public String getAdresse() { return this.adresse; } public void setAdresse(String adresse) { this.adresse = adresse; } @Column(name = "tel") public Integer getTel() { return this.tel; } public void setTel(Integer tel) { this.tel = tel; } @Column(name = "email", length = 254) public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } }Les classes Services de ces deux classes sont définit comme suit :
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 package ma.it.model; // Generated 23 mai 2012 14:06:20 by Hibernate Tools 3.4.0.CR1 import java.util.HashSet; import java.util.Set; import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.OneToMany; import javax.persistence.OneToOne; import javax.persistence.Table; /** * Compte generated by hbm2java */ @Entity @Table(name = "compte", catalog = "bdd_itrekrute") public class Compte implements java.io.Serializable { private String login; private String password; private Set<Moderateur> moderateurs = new HashSet<Moderateur>(0); public Compte() { } public Compte(String login,String password) { this.login = login; this.password=password; } public Compte(String login, String password, Set<Moderateur> moderateurs, ) { this.login = login; this.password = password; this.moderateurs = moderateurs; } @Id @Column(name = "login", unique = true, nullable = false, length = 254) public String getLogin() { return this.login; } public void setLogin(String login) { this.login = login; } @Column(name = "password", length = 254) public String getPassword() { return this.password; } public void setPassword(String password) { this.password = password; } @OneToMany(fetch = FetchType.LAZY, mappedBy = "compte") @OneToMany(fetch = FetchType.LAZY, mappedBy = "compte") public Set<Moderateur> getModerateurs() { return this.moderateurs; } public void setModerateurs(Set<Moderateur> moderateurs) { this.moderateurs = moderateurs; } }
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 ma.it.service; import java.util.List; import ma.it.model.Compte; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service("CompteService") @Transactional public class CompteService { @Autowired private SessionFactory sessionFactory; @SuppressWarnings("unchecked") public List<Compte> findAll() { return sessionFactory.getCurrentSession().createQuery("from Compte compte").list(); } public void save(Compte c) { sessionFactory.getCurrentSession().saveOrUpdate(c); } public void remove(Compte c) { sessionFactory.getCurrentSession().delete(c); } }Et les classes Bean :
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 package ma.it.service; import java.util.List; import ma.it.model.Moderateur; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @Service("ModerateurService") @Transactional public class ModerateurService { @Autowired private SessionFactory sessionFactory; @SuppressWarnings("unchecked") public List<Moderateur> findAll() { return sessionFactory.getCurrentSession().createQuery("from Moderateur moderateur").list(); } public void save(Moderateur m) { sessionFactory.getCurrentSession().saveOrUpdate(m); } public void remove(Moderateur m) { sessionFactory.getCurrentSession().delete(m); } }
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 package ma.it.bean; import java.awt.event.ActionEvent; import java.io.Serializable; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.annotation.PostConstruct; import javax.faces.component.html.HtmlDataTable; import javax.faces.context.FacesContext; import ma.it.model.Compte; import org.richfaces.model.selection.SimpleSelection; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ma.it.service.CompteService; @Component("CompteBean") @Scope("session") public class CompteBean implements Serializable { @Autowired private transient CompteService CompteService; private transient HtmlDataTable CompteTable; private List<Compte> ComptesList; private Compte currentCompte=new Compte(); private SimpleSelection selection = new SimpleSelection(); private Set<Integer> keys = new HashSet<Integer>(); private int currentRow; private String currentloginFilterValue; @PostConstruct public void init(){ ComptesList=CompteService.findAll(); this.currentCompte=new Compte(); } public void fetchCurrentRow(ActionEvent event) { int login=Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("login")); currentRow = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("row")); for (Compte c : ComptesList) { if (c.getLogin().equals(login)){ currentCompte=c; break; } } } public void SaveOrUpdate() { CompteService.save(currentCompte); init(); keys.clear(); keys.add(currentRow); this.currentCompte=new Compte(); } public void delete() { CompteService.remove(currentCompte); init(); this.currentCompte=new Compte(); } public void refresh() { this.currentCompte=new Compte(); } public void resetFilter() { this.currentCompte=new Compte(); setCurrentloginFilterValue(""); System.out.println("reset "); } /**************** getters & setters ****************/ public HtmlDataTable getCompteTable() { return CompteTable; } public void setCompteTable(HtmlDataTable compteTable) { CompteTable = compteTable; } public List<Compte> getComptesList() { return ComptesList; } public void setComptesList(List<Compte> comptesList) { ComptesList = comptesList; } public Compte getCurrentCompte() { return currentCompte; } public void setCurrentCompte(Compte currentCompte) { this.currentCompte = currentCompte; } public SimpleSelection getSelection() { return selection; } public void setSelection(SimpleSelection selection) { this.selection = selection; } public Set<Integer> getKeys() { return keys; } public void setKeys(Set<Integer> keys) { this.keys = keys; } public int getCurrentRow() { return currentRow; } public void setCurrentRow(int currentRow) { this.currentRow = currentRow; } public String getCurrentloginFilterValue() { return currentloginFilterValue; } public void setCurrentloginFilterValue(String currentNomFilterValue) { this.currentloginFilterValue = currentNomFilterValue; } }Le problème c'est que je n'arrive pas à enregistrer ou modifier ou supprimer un modérateur et son compte au même temps .
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 package ma.it.bean; import java.awt.event.ActionEvent; import java.util.HashSet; import java.util.List; import java.util.Set; import javax.annotation.PostConstruct; import javax.faces.component.html.HtmlDataTable; import javax.faces.context.FacesContext; import ma.it.service.ModerateurService; import ma.it.model.Compte; import ma.it.model.Moderateur; import org.richfaces.model.selection.SimpleSelection; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import ma.it.service.CompteService; @Component("ModerateurBean") @Scope("session") public class ModerateurBean { @Autowired private transient ModerateurService ModerateurService; private transient HtmlDataTable ModerateurTable; private List<Moderateur> ModerateursList; private Moderateur currentModerateur=new Moderateur(); private SimpleSelection selection = new SimpleSelection(); private Set<Integer> keys = new HashSet<Integer>(); private int currentRow; private String currentIdFilterValue; private String currentNomFilterValue; @PostConstruct public void init(){ ModerateursList=ModerateurService.findAll(); this.currentModerateur=new Moderateur(); } public void fetchCurrentRow(ActionEvent event) { int idModerateur=Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("idMembre")); currentRow = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("row")); for (Moderateur m : ModerateursList) { if (m.getIdMembre().equals(idModerateur)){ currentModerateur=m; break; } } } public void SaveOrUpdate() { CompteBean cb=new CompteBean(); cb.setCurrentCompte(currentModerateur.getCompte()); cb.SaveOrUpdate(); ModerateurService.save(currentModerateur); init(); keys.clear(); keys.add(currentRow); this.currentModerateur=new Moderateur(); } public void delete() { CompteBean cb=new CompteBean(); cb.setCurrentCompte(currentModerateur.getCompte()); ModerateurService.remove(currentModerateur); cb.delete(); init(); this.currentModerateur=new Moderateur(); } public void refresh() { this.currentModerateur=new Moderateur(); } public void resetFilter() { this.currentModerateur=new Moderateur(); setCurrentIdFilterValue(""); setCurrentNomFilterValue(""); System.out.println("reset "); } /**************** getters & setters ****************/ public HtmlDataTable getModerateurTable() { return ModerateurTable; } public void setModerateurTable(HtmlDataTable ModerateurTable) { this.ModerateurTable = ModerateurTable; } public List<Moderateur> getModerateursList() { return ModerateursList; } public void ModerateursList(List<Moderateur> ModerateursList) { this.ModerateursList = ModerateursList; } public Moderateur getCurrentModerateur() { return currentModerateur; } public void setcurrentModerateur(Moderateur currentModerateur) { this.currentModerateur = currentModerateur; } public void setSelection(SimpleSelection selection) { this.selection = selection; } public SimpleSelection getSelection() { return selection; } public void setKeys(Set<Integer> keys) { this.keys = keys; } public Set<Integer> getKeys() { return keys; } public void setCurrentRow(int currentRow) { this.currentRow = currentRow; } public int getCurrentRow() { return currentRow; } public String getCurrentIdFilterValue() { return currentIdFilterValue; } public void setCurrentIdFilterValue(String currentIdFilterValue) { this.currentIdFilterValue = currentIdFilterValue; } public String getCurrentNomFilterValue() { return currentNomFilterValue; } public void setCurrentNomFilterValue(String currentNomFilterValue) { this.currentNomFilterValue = currentNomFilterValue; } }
avez vous des idées.???
Partager