先看代码
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); }
某个方法中的内容是这样的,按照这段代码的逻辑,是数据库不应该出现两条一模一样的数据,但是实际情况却有时候会出现插入了两条一模一样的数据.可能是并发造成的么?具体不是太懂;望高手们能帮忙解决一下;
并发可能造成这个问题,但是你这里写得也有问题的在else里面应该是update,不是save