質問編集履歴

3

調査の経過について も記載いたしました。

2017/05/09 14:06

投稿

sakagami
sakagami

score10

test CHANGED
File without changes
test CHANGED
@@ -296,6 +296,20 @@
296
296
 
297
297
  ```
298
298
 
299
+ ###調査の経過について
300
+
301
+ デバッグした結果、SqlSessionUtilsクラスのregisterSessionHolderメソッド内の以下の条件分岐でfalseになることが原因であることが分かりました。コメント文からの推測ですが「現在のスレッドに対してトランザクション同期がアクティブでない」という状態が問題のようです。
302
+
303
+
304
+
305
+ if (TransactionSynchronizationManager.isSynchronizationActive()) { ~~~ }
306
+
307
+
308
+
309
+
310
+
311
+
312
+
299
313
 
300
314
 
301
315
  ###開発環境について

2

回答していただき、大変ありがとうございます。ログ出力時に実行したメソッドを追記いたしました。Insertだけ完全一致なのは、設定ミスが原因にならないよう考慮してのことでした。

2017/05/09 14:06

投稿

sakagami
sakagami

score10

test CHANGED
File without changes
test CHANGED
File without changes

1

回答していただき、大変ありがとうございます。ログ出力時に実行したメソッドを追記いたしました。Insertだけ完全一致なのは、設定ミスが原因にならないよう考慮してのことでした。分かりづらくて申し訳ありま

2017/05/09 13:12

投稿

sakagami
sakagami

score10

test CHANGED
File without changes
test CHANGED
@@ -238,7 +238,63 @@
238
238
 
239
239
  ```
240
240
 
241
-
241
+ 上記のログは、以下のクラスのメソッドを実行した際のものになります。
242
+
243
+ ###トランザクション対象としたいメソッド(※Insert)
244
+
245
+ ```ここに言語を入力
246
+
247
+ @Service
248
+
249
+ public class SampleService {
250
+
251
+
252
+
253
+ private static final Logger logger = LoggerFactory.getLogger(SampleService.class);
254
+
255
+
256
+
257
+ @Autowired
258
+
259
+ private ArtistsMasterMapper artistsMasterMapper;
260
+
261
+
262
+
263
+ /**
264
+
265
+ * サービスクラス
266
+
267
+ * @throws Exception
268
+
269
+ */
270
+
271
+ public void Insert(ArtistsMaster requestDto) throws Exception {
272
+
273
+ logger.info("artistInsertService", "START");
274
+
275
+
276
+
277
+ int insertRow = artistsMasterMapper.insert(requestDto);
278
+
279
+
280
+
281
+ if(insertRow > 0) {
282
+
283
+ System.out.println("実行");
284
+
285
+ throw new Exception();
286
+
287
+ }
288
+
289
+
290
+
291
+ }
292
+
293
+
294
+
295
+ }
296
+
297
+ ```
242
298
 
243
299
 
244
300