質問編集履歴

2

削除の取り消し

2017/04/14 02:46

投稿

kurikara
kurikara

スコア7

test CHANGED
@@ -1 +1 @@
1
-
1
+ JavaとJavaScriptで論理削除が何かへん!!
test CHANGED
@@ -1 +1,299 @@
1
+ ###前提・実現したいこと
2
+
3
+ JavaとJavaScriptで論理削除をやっている時にちょっと動作が今一分からなくなりました。教えて頂けると幸いです。
4
+
5
+
6
+
7
+ ###発生している問題・エラーメッセージ
8
+
9
+
10
+
11
+ パラメータを渡して、論理削除を行っているのですが、↓のソースの
12
+
13
+
14
+
15
+ // トランザクションの取得
16
+
17
+ TransactionManager tm = AppConfig\.singleton\(\)\.getTransactionManager\(\);
18
+
19
+
20
+
21
+ vResult = tm\.required\(\(\) -> {
22
+
23
+
24
+
25
+
26
+
27
+ ↑の部分で次のtry-catch文を通らずに下まで行ってしまい、エラーが返ってくるのですが、エラーがあっても、論理削除は行われていて、困っています何かおかしい部分があるでしょうか。
28
+
29
+
30
+
31
+ ###該当のソースコード
32
+
33
+ ```ここに言語を入力
34
+
35
+ /\*\*
36
+
37
+ \* 論理削除
38
+
39
+ \*/
40
+
41
+ @POST
42
+
43
+ @Path\("/PC005/delete"\)
44
+
45
+ @Consumes\(MediaType\.APPLICATION_JSON\)
46
+
47
+ @Produces\(MediaType\.APPLICATION_JSON\)
48
+
49
+ public int execute1\(LinkedHashMap<String, Object> data\){
50
+
51
+ //初期化
52
+
53
+ int vResult = -99;
54
+
55
+
56
+
57
+ //引数よりデータ取得
58
+
59
+ List<LinkedHashMap<String,Object>> delInfo = Utility\.autoCast\(data\.get\("inputData"\)\);
60
+
61
+
62
+
63
+ //TODO:パラメータの中に'inputData'が存在しない場合はエラー
64
+
65
+ if \(delInfo == null\){
66
+
67
+ vResult = -98;
68
+
69
+ }
70
+
71
+
72
+
73
+ // トランザクションの取得
74
+
75
+ TransactionManager tm = AppConfig\.singleton\(\)\.getTransactionManager\(\);
76
+
77
+
78
+
79
+ vResult = tm\.required\(\(\) -> {
80
+
81
+ try{
82
+
83
+ LinkedHashMap<String,Object> info = delInfo\.get\(0\);
84
+
85
+ // LinkedHashMap<String,Object> info = Utility\.autoCast\(delInfo\.get\(0\)\)
86
+
87
+
88
+
89
+ String term = \(String\)info\.get\("term"\);
90
+
91
+ String pgmId = \(String\)info\.get\("pgmId"\);
92
+
93
+ String eigyoCd = \(String\)info\.get\("eigyoCd"\) ;
94
+
95
+ String workKbn = \(String\)info\.get\("workKbn"\) ;
96
+
97
+ int updateCount = \(Integer\)info\.get\("updateCount"\) ;
98
+
99
+
100
+
101
+ MWorkKbnDao daoMWorkKbn = new MWorkKbnDaoImpl\(\);
102
+
103
+ //MWorkerInfoデータ存在チェック
104
+
105
+ MWorkKbn MWorkKbnDto= daoMWorkKbn\.selectById\(eigyoCd , workKbn \);
106
+
107
+ if\(MWorkKbnDto == null\){
108
+
109
+ //更新対象存在なしのためエラー
110
+
111
+ tm\.setRollbackOnly\(\);
112
+
113
+ return -5;
114
+
115
+ }
116
+
117
+
118
+
119
+ //MWorkerSkillにあるデータがあるか否か。
120
+
121
+ MWorkerSkillDao daoMWorkerSkill = new MWorkerSkillDaoImpl\(\) ;
122
+
123
+ MWorkerSkill MWorkerSkillDto = daoMWorkerSkill\.selectWorkerSkillMWorkKbn\(eigyoCd , workKbn\) ;
124
+
125
+ if\( MWorkerSkillDto != null\){
126
+
127
+ //存在しているから論理削除中止。
128
+
129
+ tm\.setRollbackOnly\(\);
130
+
131
+ return -3 ;
132
+
133
+ }
134
+
135
+
136
+
137
+ //更新回数チェック(データ存在チェック込)
138
+
139
+ if\(MWorkKbnDto\.getUpdateCount\(\) != updateCount\){
140
+
141
+ //更新回数が異なる(他プロセスですでに更新されている)ため、エラー
142
+
143
+ tm\.setRollbackOnly\(\);
144
+
145
+ return -6;
146
+
147
+ }
148
+
149
+
150
+
151
+ //削除
152
+
153
+ setDelteContentsInfo\(MWorkKbnDto,info,term,pgmId\);
154
+
155
+
156
+
157
+ //MWorkerInfoの更新
158
+
159
+ daoMWorkKbn\.deleteupdateMWorkKbn\(MWorkKbnDto\);
160
+
161
+
162
+
163
+ }catch\(Exception e\){
164
+
165
+ e\.getStackTrace\(\);
166
+
167
+ tm\.setRollbackOnly\(\);
168
+
169
+ return -99;
170
+
171
+ }
172
+
173
+ return 0;
174
+
175
+
176
+
177
+ }\);
178
+
179
+ return vResult;
180
+
181
+ }
182
+
183
+
184
+
185
+ var WorkKbn = new Object;
186
+
187
+
188
+
189
+ WorkKbn\['eigyoCd'\] = eigyoCd
190
+
191
+ WorkKbn\['workKbn'\] = workKbn ;
192
+
193
+ WorkKbn\['workName'\] = workName ;
194
+
195
+ WorkKbn\['updateCount'\] = updateCount ;
196
+
197
+
198
+
199
+ var jsonData = new Object\(\);
200
+
201
+ jsonData\['inputData'\] = new Array\(\);
202
+
203
+ jsonData\['inputData'\]\.push\(WorkKbn\);
204
+
205
+
206
+
207
+ \$\.ajax\({
208
+
209
+ url: API_PATH \+ '/PC005/delete',
210
+
211
+ type: 'POST',
212
+
213
+ data: JSON\.stringify\(jsonData, null, ''\),
214
+
215
+ contentType: 'application/JSON',
216
+
217
+ dataType : 'JSON',
218
+
219
+ }\)
220
+
221
+ \.done\(saveDone\)
222
+
223
+ \.fail\(saveFail\);
224
+
225
+
226
+
227
+
228
+
229
+ /\*\*
230
+
231
+ \* 保存成功
232
+
233
+ \*
234
+
235
+ \*/
236
+
237
+ function saveDone\(result\){
238
+
239
+ alert\(result\) ;
240
+
241
+ switch\(result\){
242
+
243
+ case 0:
244
+
245
+ alert\("正常に論理削除完了しました\\n再表示します"\);
246
+
247
+ //再読み込み
248
+
249
+ location\.reload\(\) ;
250
+
251
+ break;
252
+
253
+ case 3:
254
+
255
+ alert\("論理削除対象データが別のマスタで登録されているデータです\\n論理削除を中止します"\);
256
+
257
+ //再読み込み
258
+
259
+ location\.reload\(\) ;
260
+
261
+ break;
262
+
263
+ case -6:
264
+
265
+ alert\("論理削除対象データがすでに別プロセスで更新されています"\);
266
+
267
+ break;
268
+
269
+ case -98:
270
+
271
+ alert\("パラメータエラー"\);
272
+
273
+ break;
274
+
275
+ case -99:
276
+
1
- …申し訳ありませんでした。質問を削除したいので、質問内容消しました。ごめんなさい。
277
+ alert\("論理削除:保存に失敗しました"\);
278
+
279
+ break;
280
+
281
+
282
+
283
+ }
284
+
285
+ }
286
+
287
+
288
+
289
+ ```
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+ ###補足情報\(言語/FW/ツール等のバージョンなど\)
298
+
299
+ JavaとJavaScriptをEclipseで開発しています。

1

質問内容

2017/04/14 02:46

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- JavaとJavaScriptで論理削除が何かへん!!
1
+
test CHANGED
@@ -1,299 +1 @@
1
- ###前提・実現したいこと
2
-
3
- JavaとJavaScriptで論理削除をやっている時にちょっと動作が今一分からなくなりました。教えて頂けると幸いです。
4
-
5
-
6
-
7
- ###発生している問題・エラーメッセージ
8
-
9
-
10
-
11
- パラメータを渡して、論理削除を行っているのですが、↓のソースの
12
-
13
-
14
-
15
- // トランザクションの取得
16
-
17
- TransactionManager tm = AppConfig.singleton().getTransactionManager();
18
-
19
-
20
-
21
- vResult = tm.required(() -> {
22
-
23
-
24
-
25
-
26
-
27
- ↑の部分で次のtry-catch文を通らずに下まで行ってしまい、エラーが返ってくるのですが、エラーがあっても、論理削除は行われていて、困っています何かおかしい部分があるでしょうか。
28
-
29
-
30
-
31
- ###該当のソースコード
32
-
33
- ```ここに言語を入力
34
-
35
- /**
36
-
37
- * 論理削除
38
-
39
- */
40
-
41
- @POST
42
-
43
- @Path("/PC005/delete")
44
-
45
- @Consumes(MediaType.APPLICATION_JSON)
46
-
47
- @Produces(MediaType.APPLICATION_JSON)
48
-
49
- public int execute1(LinkedHashMap<String, Object> data){
50
-
51
- //初期化
52
-
53
- int vResult = -99;
54
-
55
-
56
-
57
- //引数よりデータ取得
58
-
59
- List<LinkedHashMap<String,Object>> delInfo = Utility.autoCast(data.get("inputData"));
60
-
61
-
62
-
63
- //TODO:パラメータの中に'inputData'が存在しない場合はエラー
64
-
65
- if (delInfo == null){
66
-
67
- vResult = -98;
68
-
69
- }
70
-
71
-
72
-
73
- // トランザクションの取得
74
-
75
- TransactionManager tm = AppConfig.singleton().getTransactionManager();
76
-
77
-
78
-
79
- vResult = tm.required(() -> {
80
-
81
- try{
82
-
83
- LinkedHashMap<String,Object> info = delInfo.get(0);
84
-
85
- // LinkedHashMap<String,Object> info = Utility.autoCast(delInfo.get(0))
86
-
87
-
88
-
89
- String term = (String)info.get("term");
90
-
91
- String pgmId = (String)info.get("pgmId");
92
-
93
- String eigyoCd = (String)info.get("eigyoCd") ;
94
-
95
- String workKbn = (String)info.get("workKbn") ;
96
-
97
- int updateCount = (Integer)info.get("updateCount") ;
98
-
99
-
100
-
101
- MWorkKbnDao daoMWorkKbn = new MWorkKbnDaoImpl();
102
-
103
- //MWorkerInfoデータ存在チェック
104
-
105
- MWorkKbn MWorkKbnDto= daoMWorkKbn.selectById(eigyoCd , workKbn );
106
-
107
- if(MWorkKbnDto == null){
108
-
109
- //更新対象存在なしのためエラー
110
-
111
- tm.setRollbackOnly();
112
-
113
- return -5;
114
-
115
- }
116
-
117
-
118
-
119
- //MWorkerSkillにあるデータがあるか否か。
120
-
121
- MWorkerSkillDao daoMWorkerSkill = new MWorkerSkillDaoImpl() ;
122
-
123
- MWorkerSkill MWorkerSkillDto = daoMWorkerSkill.selectWorkerSkillMWorkKbn(eigyoCd , workKbn) ;
124
-
125
- if( MWorkerSkillDto != null){
126
-
127
- //存在しているから論理削除中止。
128
-
129
- tm.setRollbackOnly();
130
-
131
- return -3 ;
132
-
133
- }
134
-
135
-
136
-
137
- //更新回数チェック(データ存在チェック込)
138
-
139
- if(MWorkKbnDto.getUpdateCount() != updateCount){
140
-
141
- //更新回数が異なる(他プロセスですでに更新されている)ため、エラー
142
-
143
- tm.setRollbackOnly();
144
-
145
- return -6;
146
-
147
- }
148
-
149
-
150
-
151
- //削除
152
-
153
- setDelteContentsInfo(MWorkKbnDto,info,term,pgmId);
154
-
155
-
156
-
157
- //MWorkerInfoの更新
158
-
159
- daoMWorkKbn.deleteupdateMWorkKbn(MWorkKbnDto);
160
-
161
-
162
-
163
- }catch(Exception e){
164
-
165
- e.getStackTrace();
166
-
167
- tm.setRollbackOnly();
168
-
169
- return -99;
170
-
171
- }
172
-
173
- return 0;
174
-
175
-
176
-
177
- });
178
-
179
- return vResult;
180
-
181
- }
182
-
183
-
184
-
185
- var WorkKbn = new Object;
186
-
187
-
188
-
189
- WorkKbn['eigyoCd'] = eigyoCd
190
-
191
- WorkKbn['workKbn'] = workKbn ;
192
-
193
- WorkKbn['workName'] = workName ;
194
-
195
- WorkKbn['updateCount'] = updateCount ;
196
-
197
-
198
-
199
- var jsonData = new Object();
200
-
201
- jsonData['inputData'] = new Array();
202
-
203
- jsonData['inputData'].push(WorkKbn);
204
-
205
-
206
-
207
- $.ajax({
208
-
209
- url: API_PATH + '/PC005/delete',
210
-
211
- type: 'POST',
212
-
213
- data: JSON.stringify(jsonData, null, ''),
214
-
215
- contentType: 'application/JSON',
216
-
217
- dataType : 'JSON',
218
-
219
- })
220
-
221
- .done(saveDone)
222
-
223
- .fail(saveFail);
224
-
225
-
226
-
227
-
228
-
229
- /**
230
-
231
- * 保存成功
232
-
233
- *
234
-
235
- */
236
-
237
- function saveDone(result){
238
-
239
- alert(result) ;
240
-
241
- switch(result){
242
-
243
- case 0:
244
-
245
- alert("正常に論理削除完了しました\n再表示します");
1
+ …申し訳ありませんでした。質問を削除したいので、質問内容消しました。ごめんなさい。
246
-
247
- //再読み込み
248
-
249
- location.reload() ;
250
-
251
- break;
252
-
253
- case 3:
254
-
255
- alert("論理削除対象データが別のマスタで登録されているデータです\n論理削除を中止します");
256
-
257
- //再読み込み
258
-
259
- location.reload() ;
260
-
261
- break;
262
-
263
- case -6:
264
-
265
- alert("論理削除対象データがすでに別プロセスで更新されています");
266
-
267
- break;
268
-
269
- case -98:
270
-
271
- alert("パラメータエラー");
272
-
273
- break;
274
-
275
- case -99:
276
-
277
- alert("論理削除:保存に失敗しました");
278
-
279
- break;
280
-
281
-
282
-
283
- }
284
-
285
- }
286
-
287
-
288
-
289
- ```
290
-
291
-
292
-
293
-
294
-
295
-
296
-
297
- ###補足情報(言語/FW/ツール等のバージョンなど)
298
-
299
- JavaとJavaScriptをEclipseで開発しています。