|
@@ -6,6 +6,8 @@ import org.springframework.transaction.TransactionStatus;
|
|
|
import org.springframework.transaction.support.TransactionCallbackWithoutResult;
|
|
|
import org.springframework.transaction.support.TransactionTemplate;
|
|
|
|
|
|
+import java.util.function.Supplier;
|
|
|
+
|
|
|
public class TransactionUtil {
|
|
|
|
|
|
private final static TransactionTemplate transactionTemplate = SpringUtil.getBean(TransactionTemplate.class);
|
|
@@ -24,4 +26,15 @@ public class TransactionUtil {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ public static <T> T execute(Supplier<T> supplier) {
|
|
|
+ return transactionTemplate.execute(status -> {
|
|
|
+ try {
|
|
|
+ return supplier.get();
|
|
|
+ } catch (Exception e) {
|
|
|
+ status.setRollbackOnly();
|
|
|
+ throw e;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
}
|