REQUIRED:默认事物,如果当前有事物,使用当前事物,没有就新建一个,父方法有事物子方法必须运行在一个事物中,成为一个整体,如果父方法没有,子方法新建一个事物。
SUPPORTS:如果当前有事物则使用,没有就不使用事物。如查询
MANDATORY:必须存在一个事物,不存在则报错。
REQUIRES_NEW:如果当前有事物,则挂起当前事物并自己新建一个事物,父方法异常不影响自己,自己有异常会影响父方法。如果没有则同REQUIRED。
NOT_SUPPORTED:不管当前有没有事物,都不使用事物,所以不会回滚
NEVER:从不使用事物,如果当前调用有事物,则报异常。
NESTED:如果当前有事物,则开启子事物(嵌套事物),嵌套事物是独立提交回滚的;如果当前没有事物,则同REQUIRED,但是如果父事物提交或回滚,则会携带子事物提交或回滚,相反,如果子事物异常,主事物可以选择是否回滚,相当于一个保存点
网友评论