teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

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

2017/05/09 14:06

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -147,7 +147,14 @@
147
147
 
148
148
  }
149
149
  ```
150
+ ###調査の経過について
151
+ デバッグした結果、SqlSessionUtilsクラスのregisterSessionHolderメソッド内の以下の条件分岐でfalseになることが原因であることが分かりました。コメント文からの推測ですが「現在のスレッドに対してトランザクション同期がアクティブでない」という状態が問題のようです。
152
+
153
+ if (TransactionSynchronizationManager.isSynchronizationActive()) { ~~~ }
150
154
 
155
+
156
+
157
+
151
158
  ###開発環境について
152
159
 
153
160
  java 1.8

2

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

2017/05/09 14:06

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
File without changes

1

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

2017/05/09 13:12

投稿

退会済みユーザー
title CHANGED
File without changes
body CHANGED
@@ -118,8 +118,36 @@
118
118
 
119
119
 
120
120
  ```
121
+ 上記のログは、以下のクラスのメソッドを実行した際のものになります。
122
+ ###トランザクション対象としたいメソッド(※Insert)
123
+ ```ここに言語を入力
124
+ @Service
125
+ public class SampleService {
121
126
 
127
+ private static final Logger logger = LoggerFactory.getLogger(SampleService.class);
122
128
 
129
+ @Autowired
130
+ private ArtistsMasterMapper artistsMasterMapper;
131
+
132
+ /**
133
+ * サービスクラス
134
+ * @throws Exception
135
+ */
136
+ public void Insert(ArtistsMaster requestDto) throws Exception {
137
+ logger.info("artistInsertService", "START");
138
+
139
+ int insertRow = artistsMasterMapper.insert(requestDto);
140
+
141
+ if(insertRow > 0) {
142
+ System.out.println("実行");
143
+ throw new Exception();
144
+ }
145
+
146
+ }
147
+
148
+ }
149
+ ```
150
+
123
151
  ###開発環境について
124
152
 
125
153
  java 1.8