Spring 中 事务管理 的 事务的回滚

关于 声明式事务 配置 的

noRollbackFor

 rollbackFor 

这两个属性的作用 我感到很困惑?


1. 数据库数据

book_stock数据表

Spring 中 事务管理 的 事务的回滚_第1张图片

account 数据表



2. 事务方法:        

Spring 中 事务管理 的 事务的回滚_第2张图片

3. 测试方法:

	@Test
	public void testBookShopService() {
		bookShopService.purchase("Mike", "1001");
	}

情况一:noRollbackFor 设置为UserAccountException.class 时,

运行结果是:

book_stock数据表

Spring 中 事务管理 的 事务的回滚_第3张图片

account 数据表

情况二:当 noRollbackFor 设置为BookStockException.class 时,

运行结果是:
book_stock数据表

Spring 中 事务管理 的 事务的回滚_第4张图片

account 数据表


情况三:rollbackFor 无论设置为:BookStockException.class or  UserAccountException.class时,

运行结果收是:

book_stock数据表

Spring 中 事务管理 的 事务的回滚_第5张图片

account 数据表



按照我的理解:

rollbackFor :  设置了那个异常,代表那个异常的问题会回滚

noRollbackFor : 设置了那个异常,代表那个异常的问题不会回滚

but,上面的运行结果且不是这样反映的?

why?








你可能感兴趣的:(Spring,待解决的问题)