java - 数据库插入代码的问题
大家讲道理
大家讲道理 2017-04-18 10:17:08
[Java讨论组]

先看代码

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)
巴扎黑

并发可能造成这个问题,但是你这里写得也有问题的在else里面应该是update,不是save

迷茫

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号