java - 数据库插入代码的问题

 cang桑哥哥 发布于 2022-10-30 00:52

先看代码

WxUser wxUser = wxUserRepository.findByOpenId(openId);
        if (wxUser == null) {
            wxUser = new WxUser();
            wxUser.setPoints(points);// 首次积分
            wxUser.setFirstExchange(true);
            wxUser.setOpenId(openId);
            wxUser.setWxName("");
            wxUser.setWxImgUrl("");
            wxUser = wxUserRepository.save(wxUser);
        } else {
            wxUser.setPoints(points);// TODO: 2016-10-18
            wxUser = wxUserRepository.save(wxUser);
        }

某个方法中的内容是这样的,按照这段代码的逻辑,是数据库不应该出现两条一模一样的数据,但是实际情况却有时候会出现插入了两条一模一样的数据.可能是并发造成的么?具体不是太懂;望高手们能帮忙解决一下;

2 个回答
  • 看数据库的主键吧,如果主键是 openId的话,应该是不会出现2条一摸一样的数据
    另外,save方法里,应该是createOrUpdate的逻辑吧

    2022-10-31 19:10 回答
  • 并发可能造成这个问题,但是你这里写得也有问题的在else里面应该是update,不是save

    2022-10-31 19:10 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有