Skip to content

Commit f87356c

Browse files
committed
refactor: 优化事务监听工具
1 parent cb28d49 commit f87356c

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

hsweb-commons/hsweb-commons-crud/src/main/java/org/hswebframework/web/crud/utils/TransactionUtils.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,17 @@ public static <T> Flux<T> tryRunInTransaction(Flux<T> task, TransactionDefinitio
5454
public static Mono<Void> afterCommitWithOutTransaction(Mono<Void> task) {
5555
return TransactionUtils.registerSynchronization(
5656
new TransactionSynchronization() {
57+
5758
@Override
5859
@NonNull
59-
public Mono<Void> afterCommit() {
60-
return task;
60+
public Mono<Void> afterCompletion(int status) {
61+
if (status == TransactionSynchronization.STATUS_COMMITTED) {
62+
return task;
63+
}
64+
return TransactionSynchronization.super.afterCompletion(status);
6165
}
6266
},
63-
TransactionSynchronization::afterCommit
67+
sync -> sync.afterCompletion(TransactionSynchronization.STATUS_COMMITTED)
6468
);
6569
}
6670

@@ -69,12 +73,16 @@ public static Mono<Void> afterCommit(Mono<Void> task) {
6973
new TransactionSynchronization() {
7074
@Override
7175
@NonNull
72-
public Mono<Void> afterCommit() {
73-
// 开启新事务
74-
return tryRunInTransaction(task, PROPAGATION_REQUIRES_NEW_DEF);
76+
public Mono<Void> afterCompletion(int status) {
77+
if (status == TransactionSynchronization.STATUS_COMMITTED) {
78+
// 开启新事务
79+
return tryRunInTransaction(task, PROPAGATION_REQUIRES_NEW_DEF);
80+
}
81+
return TransactionSynchronization.super.afterCompletion(status);
7582
}
7683
},
77-
TransactionSynchronization::afterCommit
84+
85+
sync -> sync.afterCompletion(TransactionSynchronization.STATUS_COMMITTED)
7886
);
7987
}
8088

0 commit comments

Comments
 (0)