目前springboot的@Transactional注解就可以实现事务!
解释一下用法:
当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该标注来覆盖类级别的定义。在项目中,@Transactional(rollbackFor=Exception.class),如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。
实现的一个用法,简单表示一下:(Assert断言,当任意一个插入失败,断言判断出来会抛出异常,这样就会被Exception识别到,然后回滚),如果不加断言可能会出现插入失败,没抛异常的情况----这是个人见解,勿喷,还是加上断言稳妥一点~~~
@Transactional(rollbackFor = Exception.class)
public void xxx() {
//增加shopRequirements
int insert = xx.insert(xxxx);
Assert.state(insert > 0, "新增失败");
int insert1 = xx.insert(xxxx);
Assert.state(insert1 > 0, "新增失败");
}