Sevice中是否可以捕获异常
•分情况来待这个问题
•1.如果service方法没有其他sevice方法,异常可以被捕获,spring的事务机制,感受不到异常存在,数据不回滚
•2否则:不能捕获,会引起问题,required事务,由于具有传播性,被调用的service方法被调用的service捕获,会导致当前事务的状态被修改,在外层数据提交的时候,会报出org.springframework.transaction.UnexpectedRollbackException:
Transaction rolled back because ithas been marked as rollback-only
•参考网站
•http://stackoverflow.com/questions/2007097/unexpectedrollbackexception-a-full-scenario-analysis
单独事务中是否可以多线程并发
•两个问题:
•1.主线程 所在事务 和 子线程 事务 是同一个事务吗?
•2事务的传播机制是什么?
•
•是不同的事务,这样用有风险,易引起数据不一致;如果都是独立任务,可以使用;所以要分清事务的边界