请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

请问老师 template=templateDao.save(template) ?

这个异步方法里不是已经保存到数据库了么?为什么这么还要再保存一次呢?这里两个有什么不同吗?

正在回答 回答被采纳积分+3

1回答

张勤一 2019-09-16 10:13:33

同学你好:

    JpaRespository 的 save 方法是一个同步方法,并不是异步方法。而且这个方法的作用就是对实体对象进行保存和修改的,它会返回保存之后的实体类对象。(建议了解下 Jpa 的用法)


    欢迎来 QQ 群随时交流、讨论,也非常感谢同学的支持!

2 回复 有任何疑惑可以回复我~
  • 提问者 367天 #1
    老师可能我说有点歧义,我说的这个异步方法 是这个 
            asyncService.asyncConstructCouponByTemplate(template);
    这个里面不是也要保存到数据库么。为什么
     CouponTemplate template = requestToTemplate(request);
            template = templateDao.save(template);
    这里还要再保存呢?这样数据库不是重复了吗?
    回复 有任何疑惑可以回复我~ 2019-09-16 10:31:00
  • 提问者 367天 #2
    老师我明白了,以前没有用过jpa ,jpa save 方法,当没有id时,是插入数据到数据库,当存在id 时,asyncService.asyncConstructCouponByTemplate(template);
    中的 template.setAvailable(true);
            templateDao.save(template);这一步就是会更新数据了?是这个意思吗?
    回复 有任何疑惑可以回复我~ 2019-09-16 13:21:32
  • 张勤一 回复 提问者 367天 #3
    asyncConstructCouponByTemplate 这个异步方法的作用是构造优惠券码并保存到 Redis 中;templateDao.save 才是保存到数据库中。
    回复 有任何疑惑可以回复我~ 2019-09-16 14:09:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信