一个类有 录入操作 和 更新操作。
在 录入操作 中会在返回结果之前进行一次 更新操作。
我现在希望的是 录入操作 不会被回滚掉但是更新操作进行回滚。
而且录入操作必须在更新操作之前,不然更新就没有对象了
@Autowired
private xxxDAO dao;
@Autowired
private xxxAPI api;
@Transactional
public void fun(XXX xxx,YYY yyy){
/* do something */
dao.save(xxx);//保存数据到数据库
this.update(yyy);//更新一下数据库的数据(更新方法里会根据另一个模块的结果更新,先执行更新,如果另一个模块返回失败则要把更新的操作回滚掉)
}
@Transactional(propagation = Propagation.NESTED)
public void update(XXX xxx){
/* do something */
dao.update(xxx)
if(!api.xxx){
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
/* do something */
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.