遇到的问题:
插入数据失败,但是页面传递的状态码是成功的,但是数据库没有进行事务回滚
首先,自定义异常
public class DaoException extends Exception {
public DaoException(String message) {
super(message);
}
}
这里用插入举例,这里必须要添上@Transactional(rollbackFor = Exception.class)
因为rollbackFor 默认的是只要自定义异常继承了Thorwable,事务就可以回滚,而Thorwable是Exception和error的父类
@Override
@Transactional(rollbackFor = Exception.class)
public int insert(TbItem tbItem, TbItemDesc tbItemDesc) throws DaoException {
int index = tbItemMapper.insert(tbItem);
if(index==1){
int index2 = tbItemDescMapper.insert(tbItemDesc);
if(index2==1){
return 1;
}
}
throw new DaoException("新增失败");
}
或者把自定义异常继承RuntimaException
public class DaoException extends RuntimaException {
public DaoException(String message) {
super(message);
}
}