关于 声明式事务 配置 的
noRollbackFor
rollbackFor
这两个属性的作用 我感到很困惑?
1. 数据库数据
book_stock数据表
account 数据表
2. 事务方法:
3. 测试方法:
@Test
public void testBookShopService() {
bookShopService.purchase("Mike", "1001");
}
情况一:当 noRollbackFor 设置为UserAccountException.class 时,
运行结果是:
book_stock数据表
account 数据表
情况二:当 noRollbackFor 设置为BookStockException.class 时,
运行结果是:
book_stock数据表
account 数据表
情况三:当 rollbackFor 无论设置为:BookStockException.class or UserAccountException.class时,
运行结果收是:
book_stock数据表
account 数据表
按照我的理解:
rollbackFor : 设置了那个异常,代表那个异常的问题会回滚
noRollbackFor : 设置了那个异常,代表那个异常的问题不会回滚
but,上面的运行结果且不是这样反映的?
why?