如果判断成重复秒杀了,那么前一步进行的reduceNumber减库存操作,不应该回滚吗?
重复秒杀会抛RepeatKillException异常, 声明式事务检测到sevice层抛出运行期异常了就会自动回滚,回滚是以方法为整体回滚。 我说清楚了吗,没有说清楚我再讲一遍 。
我说的是之前reducenumber的操作,减库存和插入秒杀记录是不同操作。 这个问题后面的课程会讲解到。
sql 有函数 ignore ,如果存在,直接忽略返回0,并没有插入,不需要回滚