spring通过注解的方式添加事务,为什么事务没办法回滚

是这样的,我通过spring注解的方式添加了事务,如下:

img


在实现类中有三个方法,第一个是添加出售订单表的,第二个是更新库存表的(修改指定id商品的存量),第三个是查询库存,为什么我添加了一个库存没有的商品数据是,方法一可以添加,方法二修改失败(没有指定id的商品),按理来说,这个时候,应该就得回滚了,但是我回去查数据库的时候,出售表添加了这个商品,库存表却没有改变。如果事务成功的话,这个时候不应该两个表都不会变吗。
下面是控制台的内容:

img


有人知道怎么回事吗??麻烦帮我看看。
数据库如下:

img

img


通过操作后:

img


数据库变化如下:

img

img


,我也改了表的innodb,也没用

事务回滚是发生了运行期异常,如果发生异常若是没有回滚,可能你把异常手动try catch了

这个类加@Service

img

如果你没有在配置文件中配置那就需要在serviceImpl类上加上@Service注解。
回滚的条件是添加了事务的方法中出现异常Exception,我看你的日志里也没出现异常啊。
没有出现异常就说明你的sql操作都被正常执行且提交事务了,当然就没有回滚这一说。
你要模拟回滚就手动throw new Exception()

没异常回滚个啥