spring编程事务。

xiaobai_104 2017-09-16 05:39:26
微信支付,异步通知受网络等未知因素,可能会通知的比较慢,所以这个时候我们会去主动查询交易结果。因为两个接口都用到事务回滚,问题来了,第一次成功操作修改数据库,第二次就出问题了,方法中有三个sql,第一个新增sql没有插入成功,其他两个update语句却成功了。
public void tradeQuery(){
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = this.transactionManager.getTransaction(def);

try{
//保存回调数据
kppPayRecordService.addKppPayRecord(param);
//修改订单状态 为支付成功
userPayRecordService.updateIsPay(outTradeNo);
//修改钱包记录
userWalletService.updateWallet(totalFee,outTradeNo, Consts.USER_PAY_TYPE_KFT,
DateTime.getDateTime(new Date()),userPayRecord, response);
transactionManager.commit(status) ;
}catch(){
transactionManager.rollback(status);
}
}
回调接口和查询接口处理的方式都一样。
请问下啥原因?
...全文
160 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
XxPingEr 2017-09-19
  • 打赏
  • 举报
回复
这个是并发访问的问题吗?当第一个线程被阻塞的时候,其余的线程继续执行。导致后面两条update执行成功。加个同步试试
gankunjian 2017-09-19
  • 打赏
  • 举报
回复
引用 楼主 xiaobai_104 的回复:
微信支付,异步通知受网络等未知因素,可能会通知的比较慢,所以这个时候我们会去主动查询交易结果。因为两个接口都用到事务回滚,问题来了,第一次成功操作修改数据库,第二次就出问题了,方法中有三个sql,第一个新增sql没有插入成功,其他两个update语句却成功了。 public void tradeQuery(){ DefaultTransactionDefinition def = new DefaultTransactionDefinition(); def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED); TransactionStatus status = this.transactionManager.getTransaction(def); try{ //保存回调数据 kppPayRecordService.addKppPayRecord(param); //修改订单状态 为支付成功 userPayRecordService.updateIsPay(outTradeNo); //修改钱包记录 userWalletService.updateWallet(totalFee,outTradeNo, Consts.USER_PAY_TYPE_KFT, DateTime.getDateTime(new Date()),userPayRecord, response); transactionManager.commit(status) ; }catch(){ transactionManager.rollback(status); } } 回调接口和查询接口处理的方式都一样。 请问下啥原因?
update语句都执行成功了说明方法里面没有异常抛出,你可以看看是不是 //保存回调数据 kppPayRecordService.addKppPayRecord(param); 这个保存回调数据的方法有问题。
xiaobai_104 2017-09-16
  • 打赏
  • 举报
回复
日志打印都正常,但是查询数据新增语句却没记录

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧