在Spring中,事務(wù)的傳播方式有以下幾種:
REQUIRED(默認(rèn)值):如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前不存在事務(wù),則創(chuàng)建一個(gè)新的事務(wù)。
SUPPORTS:如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前不存在事務(wù),則以非事務(wù)方式執(zhí)行。
MANDATORY:如果當(dāng)前存在事務(wù),則加入該事務(wù);如果當(dāng)前不存在事務(wù),則拋出異常。
REQUIRES_NEW:無論當(dāng)前是否存在事務(wù),都創(chuàng)建一個(gè)新的事務(wù)。如果當(dāng)前存在事務(wù),則掛起該事務(wù)。
NOT_SUPPORTED:以非事務(wù)方式執(zhí)行操作。如果當(dāng)前存在事務(wù),則掛起該事務(wù)。
NEVER:以非事務(wù)方式執(zhí)行操作。如果當(dāng)前存在事務(wù),則拋出異常。
NESTED:如果當(dāng)前存在事務(wù),則在嵌套事務(wù)中執(zhí)行。如果當(dāng)前不存在事務(wù),則創(chuàng)建一個(gè)新的事務(wù)。嵌套事務(wù)可以獨(dú)立提交或回滾,而不影響外部事務(wù)的提交或回滾。