在Spring中,可以使用TransactionSynchronizationManager.isActualTransactionActive()
方法來判斷當前線程是否在事務中。
示例代碼如下:
import org.springframework.transaction.support.TransactionSynchronizationManager;
public class TransactionUtils {
public static boolean isInTransaction() {
return TransactionSynchronizationManager.isActualTransactionActive();
}
}
然后,在需要判斷是否在事務內的地方調用isInTransaction()
方法即可判斷當前線程是否在事務中。
if (TransactionUtils.isInTransaction()) {
// 在事務內的邏輯處理
} else {
// 不在事務內的邏輯處理
}