java - 如何使用事务注释进行回滚
问题描述
我正在尝试在我的方法中进行事务回滚。我故意让插入失败。但我不认为它会回滚。请帮助我缺少什么。
@Service
public class ModesService implements IModesService{
ChargeRuleDao chargeRuleDao;
public ModesService(ChargeRuleDao chargeRuleDao){
this.chargeRuleDao = chargeRuleDao;
}
@Override
@Transactional(propagation = Propagation.REQUIRED)
public void process(ChargeRule chargeRule){
chargeRuleDao.deleteShippingChargeAttr(shippingChargeRuleID);
chargeRuleDao.deleteShippingCharge(shippingChargeRuleID);
chargeRuleDao.deleteShippingChargeDest(shippingChargeRuleID);
//Delete
chargeRuleDao.insertShipChargeFeedRule(chargeRule);
}
在 DAOImpl 类中,我有如下方法用于所有删除和插入。
@Override
public int deleteShippingChargeAttr(String test) {
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue("ABC" "ABC", Types.VARCHAR);
return jdbcTemplate.update(DELETE_QUERY, params);
}
解决方案
你可以试试@Transactional(rollbackFor = XYZException.class)
。XYZException 应该是一个异常,它应该包含您想要回滚事务的所有异常/异常。
推荐阅读
- facebook-graph-api - 使用 Facebook Oembed 获取所有 Instagram 帖子
- java - 打印出没有 [] 的堆栈
- javascript - 将 dotenv-webpack 与 react 项目一起使用时出错
- html - 为什么当我编辑输入元素的大小时,相邻元素的大小也会增加?
- arrays - 在C中递归地在1-1000范围内的整数的三元系数
- javascript - Docker npm 奇怪的行为
- ios - 如何解决'SideMenu' CocoaPod 的'AppDelegate' 类型的值没有成员'navigationController' 问题?
- php - wordpress is_front_page() true on woocomerce 确认电子邮件
- jquery - 如何使用 jquery 获取行中的前两个 td
- c++ - 在遗传算法中为多个“推销员”TSP 实现交叉函数