往数据库里存两个数据,要求一个存失败另一个也不能成功怎么做?
通过对类进行事务注解,可以做到
@Transactional
public void insertTwo(){
Gril girlA = new Gril();
girlA.setCupSize("A");
girlA.setAge(18);
girlRepository.save(girlA);
Gril girlB = new Gril();
girlB.setCupSize("B");
girlB.setAge(19);
girlRepository.save(girlB);
}默认spring事务只在发生未被捕获的 RuntimeException 时才回滚,实际上这么写是不会成功的,坑好多,emmmmm
我们可以通过抛出 RuntimeException 的异常来解决
@Transactional
public void insertTwo(){
try{
Gril girlA = new Gril();
Gril girlB = new Gril();
girlA.setCupSize("A");
girlA.setAge(18);
girlB.setCupSize("B");
girlB.setAge(19);
girlRepository.save(girlA);
girlRepository.save(girlB);
}
catch(Exception ex){
throw new RuntimeException();
}
}解决,撒花~
本文介绍如何使用Spring事务确保一组操作要么全部成功,要么全部失败。通过抛出RuntimeException确保当一个保存操作失败时,其它操作也会被回滚。
3646

被折叠的 条评论
为什么被折叠?



