事务传播机制:用于解决业务层的事务间调用问题,而不是“JDBC事务管理”。 PROPAGATION_REQUIRED :支持(使用)当前事务,如果不存在事务就创建一个新事务
*在方法a中调用方法b :如果方法a具有事务,则b方法使用方法a的事务。 如果a没有事务,请创建新事务。(A,b在同一事务中)
PROPAGATION_SUPPORTS :支持(使用)当前事务,如果不存在事务就不使用事务
PROPAGATION_MANDATORY :支持(使用)当前事务,如果不存在就抛出异常
PROPAGATION_REQUIRES_NEW :如果有事务存在,则挂起当前事务,创建一个新事务。(不在同一事务)
PROPAGATION_NOT_SUPPORTED :已非事务的方式运行,如果有事务存在,则挂起当前事务。
PROPAGATION_NEVER :已非事务的方式运行,如果有事务存在,则抛出异常。
PROPAGATION_NESTED : 如果当前事务存在,则嵌套事务执行
33558 www.Sina.com/*基于保存点技术
*方法A.B: A中有事务,a执行后,将a事务执行后的内容保存在savePoint中,如果b事务出现异常,用户需要自己设置是提交还是回退事务
常用的:
PROPAGATION_REQUIRED
PROPAGATION_REQUIRES_NEW
挂起事务的示例()在事务被挂起之后,没有任何操作受该事务的控制)。例如,方法a支持事务,而方法b不支持事务即 PROPAGATION_NESTED
方法a调用方法b。
方法a开始执行时,系统为其建立Transaction,方法a中对数据库的处理操作在其Transaction的控制下。
此时,方法a调用方法b,方法a打开的Transaction挂起,方法b的任何数据库操作都不在其Transaction的管理下。
当方法b返回时,方法a继续执行,以前的Transaction会做出响应,后续的数据库操作在此Transaction的控制下继续提交或回退。