Bonjour ,
je débute dans hibernate et je suis coincée ,
j'ai 2 tables user et role et une autre intermediaire qui contient id_user et l'id_role , j'ai le userDs.java et roleDs.java les datasources , je veux au fait afficher une table qui contient non pas l'id_user et l'id_role mais plutot leur libellés .truc dans le genre
Sam : Administrateur
David: RH
voici mon userDs:
RoleDs.java
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 public class RoleDS extends GwtRpcDataSource { private static RoleDS instance = null; private static RoleServiceAsync service = GWT.create (RoleService.class); private Constants constants = GWT.create(Constants.class); public static RoleDS getInstance() { if (instance == null) { instance = new RoleDS("role_ds"); } return instance; } public RoleDS(String id) { setID(id); DataSourceIntegerField pkField = new DataSourceIntegerField("roleID", "ID"); pkField.setPrimaryKey(true); pkField.setCanEdit(false); pkField.setHidden(true); pkField.setRequired(false); addField(pkField); DataSourceTextField roleCodeField = new DataSourceTextField("roleCode", "Code"); roleCodeField.setRequired(true); addField(roleCodeField); DataSourceTextField roleNomField = new DataSourceTextField("roleLibelle", "Libellée"); roleNomField.setRequired(true); addField(roleNomField); DataSourceTextField roleDescField = new DataSourceTextField("roleDesc", "Description"); addField(roleDescField); setClientOnly(true); } @Override protected void executeAdd(final String requestId, DSRequest request, final DSResponse response) { System.out.println("[ROLE DS] EXECUTING ADD"); JavaScriptObject data = request.getData (); ListGridRecord rec = new ListGridRecord (data); Role testRec = new Role (); copyValues (rec, testRec); service.add (testRec, new AsyncCallback<Role> () { public void onFailure (Throwable caught) { Map<String,String> mapError=new HashMap<String, String>(); if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); }else if (caught instanceof ServiceConstraintException){ SC.say(constants.AddErreur()); mapError.put("erreur", constants.AddErreur()); response.setErrors(mapError); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } public void onSuccess(Role result) { ListGridRecord[] list = new ListGridRecord[1]; ListGridRecord newRec = new ListGridRecord (); copyValues (result, newRec); list[0] = newRec; response.setData (list); processResponse (requestId, response); } }); } @Override protected void executeFetch(final String requestId, DSRequest request,final DSResponse response) { final int startIndex = (request.getStartRow()==null || request.getStartRow () < 0)?0:request.getStartRow (); final int endIndex = (request.getEndRow () == null)?-1:request.getEndRow (); System.out.println("[ROLE DS] EXECUTE FETCH : START INDEX :"+startIndex+ " END INDEX :"+endIndex); service.fetch (new AsyncCallback<List<Role>> () { public void onFailure (Throwable caught) { if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } /** * @param result */ public void onSuccess (List<Role> result) { // Calculating size of return list int size = result.size (); if (endIndex >= 0) { if (endIndex < startIndex) { size = 0; } else { size = endIndex - startIndex + 1; } } // Create list for return - it is just requested records ListGridRecord[] list = new ListGridRecord[size]; if (size > 0) { for (int i = 0; i < result.size (); i++) { if (i >= startIndex && i <= endIndex) { ListGridRecord record = new ListGridRecord (); copyValues (result.get (i), record); list[i - startIndex] = record; } } } response.setData (list); // IMPORTANT: for paging to work we have to specify size of full result set response.setTotalRows (result.size ()); processResponse (requestId, response); } }); } @Override protected void executeRemove(final String requestId, DSRequest request, final DSResponse response) { System.out.println("[ROLE DS] EXECUTING REMOVE..."); JavaScriptObject data = request.getData(); final ListGridRecord rec = new ListGridRecord (data); Role testRec = new Role (); copyValues (rec, testRec); service.remove (testRec, new AsyncCallback<Object> () { public void onFailure (Throwable caught) { if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); }else if (caught instanceof ServiceConstraintException){ SC.say(constants.DeleteErreur()); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } public void onSuccess (Object result) { ListGridRecord[] list = new ListGridRecord[1]; // We do not receive removed record from server. // Return record from request. list[0] = rec; response.setData (list); processResponse (requestId, response); } }); } @Override protected void executeUpdate(final String requestId, DSRequest request,final DSResponse response) { System.out.println("[ROLE DS] EXECUTING UPDATE"); ListGridRecord rec = getEditedRecord (request); Role testRec = new Role (); copyValues (rec, testRec); service.update (testRec, new AsyncCallback<Role> () { public void onFailure (Throwable caught) { if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); }else if (caught instanceof ServiceConstraintException){ SC.say(constants.UpdateErreur()); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } public void onSuccess (Role result) { ListGridRecord[] list = new ListGridRecord[1]; ListGridRecord updRec = new ListGridRecord (); copyValues (result, updRec); list[0] = updRec; response.setData (list); processResponse (requestId, response); } }); } private ListGridRecord getEditedRecord (DSRequest request) { // Retrieving values before edit JavaScriptObject oldValues = request.getAttributeAsJavaScriptObject ("oldValues"); // Creating new record for combining old values with changes ListGridRecord newRecord = new ListGridRecord (); // Copying properties from old record JSOHelper.apply (oldValues, newRecord.getJsObj ()); // Retrieving changed values JavaScriptObject data = request.getData (); // Apply changes JSOHelper.apply (data, newRecord.getJsObj ()); return newRecord; } protected void copyValues(Role from, ListGridRecord to) { to.setAttribute ("roleID",from.getId()); to.setAttribute ("roleCode",from.getCode()); to.setAttribute ("roleLibelle",from.getLibelle()); to.setAttribute ("roleDesc",from.getDescription()); } private static void copyValues (ListGridRecord from, Role to) { to.setId(from.getAttributeAsInt("roleID")); to.setCode(from.getAttributeAsString("roleCode")); to.setLibelle(from.getAttributeAsString("roleLibelle")); to.setDescription(from.getAttributeAsString("roleDesc")); } }
je souligne que c'est un projet GWT Spring Hibernate BD MySql
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 package com.mp.client.datasources; import java.util.HashMap; import java.util.List; import java.util.Map; import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.user.client.rpc.AsyncCallback; import com.mp.client.Constants; import com.mp.model.User; import com.mp.services.UserService; import com.mp.services.UserServiceAsync; import com.mp.services.exception.ServiceConstraintException; import com.mp.services.exception.ServiceSecurityException; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.DSResponse; import com.smartgwt.client.data.fields.DataSourceIntegerField; import com.smartgwt.client.data.fields.DataSourceTextField; import com.smartgwt.client.rpc.RPCResponse; import com.smartgwt.client.util.JSOHelper; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.grid.ListGridRecord; public class UserDS extends GwtRpcDataSource { private static UserDS instance = null; private static UserServiceAsync service = GWT.create (UserService.class); private Constants constants = GWT.create(Constants.class); public static UserDS getInstance() { if (instance == null) { instance = new UserDS("user_ds"); } return instance; } public UserDS(String id) { setID(id); DataSourceIntegerField pkField = new DataSourceIntegerField("userID", "ID"); pkField.setPrimaryKey(true); pkField.setCanEdit(false); pkField.setHidden(true); pkField.setRequired(false); addField(pkField); DataSourceTextField userNomField = new DataSourceTextField("userNom", "Nom"); userNomField.setRequired(true); addField(userNomField); DataSourceTextField userPrenomField = new DataSourceTextField("userPrenom", "Prénom"); userPrenomField.setRequired(true); addField(userPrenomField); DataSourceTextField userTelField = new DataSourceTextField("userTelephone", "Tél"); addField(userTelField); DataSourceTextField userAdresseField = new DataSourceTextField("userAdresse", "Adresse"); addField(userAdresseField); DataSourceTextField userLoginField = new DataSourceTextField("userLogin", "Login"); addField(userLoginField); DataSourceTextField userPasswordField = new DataSourceTextField("userPassword", "Password"); addField(userPasswordField); } @Override protected void executeAdd(final String requestId, DSRequest request, final DSResponse response) { System.out.println("[USER DS] EXECUTING ADD"); JavaScriptObject data = request.getData (); ListGridRecord rec = new ListGridRecord (data); User testRec = new User (); copyValues (rec, testRec); service.add (testRec, new AsyncCallback<User> () { public void onFailure (Throwable caught) { Map<String,String> mapError=new HashMap<String, String>(); if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); }else if (caught instanceof ServiceConstraintException){ SC.say(constants.AddErreur()); mapError.put("erreur", constants.AddErreur()); response.setErrors(mapError); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } public void onSuccess(User result) { ListGridRecord[] list = new ListGridRecord[1]; ListGridRecord newRec = new ListGridRecord (); copyValues (result, newRec); list[0] = newRec; response.setData (list); processResponse (requestId, response); } }); } @Override protected void executeFetch(final String requestId, DSRequest request,final DSResponse response) { final int startIndex = (request.getStartRow()==null || request.getStartRow () < 0)?0:request.getStartRow (); final int endIndex = (request.getEndRow () == null)?-1:request.getEndRow (); System.out.println("[USER DS] EXECUTE FETCH : START INDEX :"+startIndex+ " END INDEX :"+endIndex); service.fetch (new AsyncCallback<List<User>> () { public void onFailure (Throwable caught) { if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } /** * @param result */ public void onSuccess (List<User> result) { // Calculating size of return list int size = result.size (); if (endIndex >= 0) { if (endIndex < startIndex) { size = 0; } else { size = endIndex - startIndex + 1; } } // Create list for return - it is just requested records ListGridRecord[] list = new ListGridRecord[size]; if (size > 0) { for (int i = 0; i < result.size (); i++) { if (i >= startIndex && i <= endIndex) { ListGridRecord record = new ListGridRecord (); copyValues (result.get (i), record); list[i - startIndex] = record; } } } response.setData (list); // IMPORTANT: for paging to work we have to specify size of full result set response.setTotalRows (result.size ()); processResponse (requestId, response); } }); } @Override protected void executeRemove(final String requestId, DSRequest request, final DSResponse response) { System.out.println("[USER DS] EXECUTING REMOVE..."); JavaScriptObject data = request.getData(); final ListGridRecord rec = new ListGridRecord (data); User testRec = new User (); copyValues (rec, testRec); service.remove (testRec, new AsyncCallback<Object> () { public void onFailure (Throwable caught) { if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); }else if (caught instanceof ServiceConstraintException){ SC.say(constants.DeleteErreur()); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } public void onSuccess (Object result) { ListGridRecord[] list = new ListGridRecord[1]; // We do not receive removed record from server. // Return record from request. list[0] = rec; response.setData (list); processResponse (requestId, response); } }); } @Override protected void executeUpdate(final String requestId, DSRequest request,final DSResponse response) { System.out.println("[USER DS] EXECUTING UPDATE"); ListGridRecord rec = getEditedRecord (request); User testRec = new User (); copyValues (rec, testRec); service.update (testRec, new AsyncCallback<User> () { public void onFailure (Throwable caught) { if (caught instanceof ServiceSecurityException) { SC.say(constants.SeccuriteErreur()); }else if (caught instanceof ServiceConstraintException){ SC.say(constants.UpdateErreur()); } else { SC.say(constants.ServerErreur()); } response.setStatus (RPCResponse.STATUS_FAILURE); processResponse (requestId, response); } public void onSuccess (User result) { ListGridRecord[] list = new ListGridRecord[1]; ListGridRecord updRec = new ListGridRecord (); copyValues (result, updRec); list[0] = updRec; response.setData (list); processResponse (requestId, response); } }); } private ListGridRecord getEditedRecord (DSRequest request) { // Retrieving values before edit JavaScriptObject oldValues = request.getAttributeAsJavaScriptObject ("oldValues"); // Creating new record for combining old values with changes ListGridRecord newRecord = new ListGridRecord (); // Copying properties from old record JSOHelper.apply (oldValues, newRecord.getJsObj ()); // Retrieving changed values JavaScriptObject data = request.getData (); // Apply changes JSOHelper.apply (data, newRecord.getJsObj ()); return newRecord; } protected void copyValues(User from, ListGridRecord to) { to.setAttribute ("userID",from.getId()); to.setAttribute ("userNom",from.getNom()); to.setAttribute ("userPrenom",from.getPrenom()); to.setAttribute ("userTelephone",from.getTelephone()); to.setAttribute ("userAdresse",from.getAdresse()); to.setAttribute ("userLogin",from.getLogin()); to.setAttribute ("userPassword",from.getPassword()); } private static void copyValues (ListGridRecord from, User to) { to.setId(from.getAttributeAsInt("userID")); to.setNom(from.getAttributeAsString("userNom")); to.setPrenom(from.getAttributeAsString("userPrenom")); to.setTelephone(from.getAttributeAsString("userTelephone")); to.setAdresse(from.getAttributeAsString("userAdresse")); to.setLogin(from.getAttributeAsString("userLogin")); to.setPassword(from.getAttributeAsString("userPassword")); } }
voici le code sqli pour les 3 tables :
Merci d'avance .
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 CREATE TABLE `role` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `libelle` varchar(45) NOT NULL, `description` varchar(250) NOT NULL, `code` varchar(45) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1; CREATE TABLE `user` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT, `nom` varchar(45) NOT NULL, `prenom` varchar(45) NOT NULL, `adresse` varchar(100) NOT NULL, `telephone` varchar(45) NOT NULL, `email` varchar(45) NOT NULL, `login` varchar(45) NOT NULL, `password` varchar(45) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `Unique_1` (`login`,`password`) ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1; CREATE TABLE `user_person` ( `id_user_person` int(11) NOT NULL, `id_employe` int(11) DEFAULT NULL, `id_person` int(11) DEFAULT NULL, `date` datetime DEFAULT NULL, PRIMARY KEY (`id_user_person`), KEY `fk_id_personuser` (`id_person`), KEY `fk_id_employuser` (`id_employe`), CONSTRAINT `fk_id_employuser` FOREIGN KEY (`id_employe`) REFERENCES `mp_employe` (`id_employe`) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT `fk_id_personuser` FOREIGN KEY (`id_person`) REFERENCES `mp_person` (`id_person`) ON DELETE NO ACTION ON UPDATE NO ACTION ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Partager