12/12 事务细节
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 事务细节: isolation propagation 如果有多个事务嵌套运行,子事务是否要和大事务共用一个事务
noRollbackFor Class[] -- 哪些异常事务可以不会滚 noRollbackForClassName rollbackFor Class[] -- 哪些异常事务需要回滚 rollbackForClassName
异常分类: 运行时异常(非检查异常,比如除0):可以不处理:默认都回滚 编译时异常(比如file找不到):要么try-catch:默认不回滚
readOnly -boolean =true:设置为只读事务 加快查询速度,不用管事务的操作 不能用于增删改 timeout -int 三秒内执行不完就回滚,并且报TransactionTimedOutException
|
事务的传播:
坐一辆车用REQUIRED
坐新车用REQUIRED_NEW:当前事务总是使用一个新事务 如果已经有事务,会将之前事务挂起
任何地方崩异常,已经执行了的REQUIRED NEW 还是一定完成,都会成功
REQUIRED 事物的属性都是继承于大事务的
REQUIRES_NEW: 这个方法直接使用新的connection
XML方法配置事务
1 2 3 4 5 6 7 8 9 10
| <aop:config> <aop:pointcut id="txPoint" expression="execution(* com.runsstudio.service.*.*(..))"/> <aop:advisor advice-ref="myAdvice" pointcut-ref="txPoint"></aop:advisor> </aop:config> <tx:advice id="myAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="checkout" propagation="REQUIRED" timeout="-1"/> <tx:method name="get*" read-only="true"/> </tx:attributes> </tx:advice>
|