往数据库里存两个数据,要求一个存失败另一个也不能成功怎么做?
通过对类进行事务注解,可以做到
@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();
}
}
解决,撒花~