一、REQUIRED
如果当前没有事务,则创建一个新的事务,如果当前存在事务,子方法加入当前事务,形成一个整体。
二、SUPPORTS
如果当前有事务,则使用当前事务;如果当前没有事务,则不使用事务。
三、MANDATORY
该属性强制使用一个事务,如果没有事务,则直接抛出一个异常。
四、REQUIRES_NEW
如果当前有事务,则挂起该事务,并自己创建一个新的事务给自己使用,如果没有,和REQUIRED一样
五、NOT_SUPPORTED
如果有事务,则挂起事务,自己也不使用任何事务对数据库进行操作。
六、NEVER
如果有事务,则抛出异常,不支持任何事务对数据库进行操作。
七、NESTED
如果有事务,开启子事务(嵌套事务),嵌套事务是独立提交或者回滚;如果当前没有事务,则同REQUIRED一样。如果主事务提交,则携带子事务提交;如果子事务回滚,则携带子事务一起回滚。相反,子事务异常,主事务可以回滚,也可以不回滚。