hibernate更新数据不生效(特殊情况之一)

今天又碰到一个奇葩问题,这个问题以前遇到过,还不太懂,也还没有好的解决办法,以后有时间再好好研究,这里先记录一下。

需求: 后台需要新加一个字段用来关联第三方平台数据,修改操作的逻辑需要用这个字段去获取第三方平台数据并且更新到当前表。

简化代码如下:


		Offer offer = this.offerService.get(id);
		
		offer.setName(name);
		offer.setUnit(unit);
		offer.setStock(stock);
		offer.setPrice(price);
		offer.setEnabled(true);

		//关联更新
		if(StringUtils.isNotBlank(code)){
		
			//根据存货编码获取用友的数据
			String resultData = YyApiUtils.getProductList(code,null,null);
			
			//获取数据存入offer操作
			//....................
		}
		
		//更新数据
		this.offerService.update(offer);

		//调试输出
		System.out.println("更新后offer数据:" + offer.toString());
		
  		out.put("status", 200);
		out.put("message", "修改成功");
		return out.toString();
		

问题: 在提交update操作之后,前端第一时间获取数据能正常回显最新其他数据,但是一刷新就又还原了。。。本地运行调试没问题数据正常更新,线上也正常执行,但是数据就是不更新也不报错。

分析: 接口原来的update一直没问题,很可能是自己新加的同步第三方代码影响了,尝试后台不录入关联参数结果正常更新数据,这更加确定就是新加代码问题,如果在代码里层层加上输入日志分析过程,发现return前最后一段日志输入之后,还有调用第三方接口日志输出。

原因: 代码执行到中间逻辑去请求第三方获取数据,可能因为网络问题啥的,还没得到反馈就继续往下执行update操作,实际上是正常更新了数据库,但是等接口数据反馈回来的时候又把对象的数据还原了。

临时解决办法: 把更新第三方数据的逻辑重新写个接口让前端调用,先不影响原来数据的更新,二次调用更新第三方数据。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

求生的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值