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

質問編集履歴

5

_

2018/12/04 18:24

投稿

k499778
k499778

スコア599

title CHANGED
File without changes
body CHANGED
@@ -10,6 +10,7 @@
10
10
 
11
11
  いろんな記事を見て、RuntimeExceptionを明示的に起こしてロールバックさせようとしているのですが、DBの値は更新されていました。
12
12
  参考:[https://www.qoosky.io/techs/400f6b6f09](https://www.qoosky.io/techs/400f6b6f09)
13
+ [springbootのトランザクション管理について](https://teratail.com/questions/120515)
13
14
 
14
15
  @Transactionalは実際にうまくいくのでしょうか?また他のやり方で実装した方がいいのでしょうか?オススメのやり方があれば教えていただけますでしょうか?
15
16
 

4

2018/12/04 18:24

投稿

k499778
k499778

スコア599

title CHANGED
File without changes
body CHANGED
@@ -9,6 +9,7 @@
9
9
  serviceクラス内のメソッドに@Transactionalを設定し、controllerクラスから@AutowiredでserviceクラスをDIしています。またメソッドはpublicです。
10
10
 
11
11
  いろんな記事を見て、RuntimeExceptionを明示的に起こしてロールバックさせようとしているのですが、DBの値は更新されていました。
12
+ 参考:[https://www.qoosky.io/techs/400f6b6f09](https://www.qoosky.io/techs/400f6b6f09)
12
13
 
13
14
  @Transactionalは実際にうまくいくのでしょうか?また他のやり方で実装した方がいいのでしょうか?オススメのやり方があれば教えていただけますでしょうか?
14
15
 

3

2018/12/04 18:20

投稿

k499778
k499778

スコア599

title CHANGED
File without changes
body CHANGED
@@ -6,9 +6,9 @@
6
6
  経緯として、
7
7
  2つのテーブルを同一メソッド内で更新する処理があります。
8
8
  それを@Transactionalを使ってトランザクション処理を実装しようとしていました。
9
- serviceクラス内のメソッドに@Transactionalを設定し、cotrollerクラスからautowiredでserviceクラスをDIしています。またメソッドはpublicです。
9
+ serviceクラス内のメソッドに@Transactionalを設定し、controllerクラスから@AutowiredでserviceクラスをDIしています。またメソッドはpublicです。
10
10
 
11
- いろんな記事を見て、runtimeexceptionを明示的に起こしてロールバックさせようとしているのですが、DBの値は更新されていました。
11
+ いろんな記事を見て、RuntimeExceptionを明示的に起こしてロールバックさせようとしているのですが、DBの値は更新されていました。
12
12
 
13
13
  @Transactionalは実際にうまくいくのでしょうか?また他のやり方で実装した方がいいのでしょうか?オススメのやり方があれば教えていただけますでしょうか?
14
14
 

2

2018/12/04 17:45

投稿

k499778
k499778

スコア599

title CHANGED
File without changes
body CHANGED
@@ -16,19 +16,17 @@
16
16
 
17
17
  ```Java
18
18
  @Transactional
19
- public void update(Store uDto, List<Item> hogeList) {
19
+ public void update(List<Item> iList,Store sDto) {
20
- List<Item> tList = new ArrayList<>();
20
+ List<Item> tempList = new ArrayList<>();
21
21
 
22
- hogeList.forEach(t ->
22
+ iList.forEach(i ->
23
- t.setUsed(1);
23
+ i.setUsedFlag(true);
24
24
  tList.add(t);
25
25
  });
26
26
 
27
- tDao.batchUpdate(tList);
27
+ iDao.batchUpdate(tempList);
28
-
29
-
30
28
 
31
- sDao.update(uDto);
29
+ sDao.update(sDto);
32
30
 
33
31
  throw new RuntimeException();
34
32
  }

1

2018/12/04 17:43

投稿

k499778
k499778

スコア599

title CHANGED
File without changes
body CHANGED
@@ -12,4 +12,24 @@
12
12
 
13
13
  @Transactionalは実際にうまくいくのでしょうか?また他のやり方で実装した方がいいのでしょうか?オススメのやり方があれば教えていただけますでしょうか?
14
14
 
15
- お願い致します。
15
+ お願い致します。
16
+
17
+ ```Java
18
+ @Transactional
19
+ public void update(Store uDto, List<Item> hogeList) {
20
+ List<Item> tList = new ArrayList<>();
21
+
22
+ hogeList.forEach(t ->
23
+ t.setUsed(1);
24
+ tList.add(t);
25
+ });
26
+
27
+ tDao.batchUpdate(tList);
28
+
29
+
30
+
31
+ sDao.update(uDto);
32
+
33
+ throw new RuntimeException();
34
+ }
35
+ ```