为了账号安全,请及时绑定邮箱和手机立即绑定

搜索一个列表,遍历,根据某个字段值更新数据。如何防止重复操作?

搜索一个列表,遍历,根据某个字段值更新数据。如何防止重复操作?

不负相思意 2019-02-25 09:15:21
public void takeOrder(String currentUser){   String sql = "select * from customer where take_status is null limit 30";   List<Customer> customerList = customerDao.findUnTakeCustomer(sql);   for(Customer cust : customerList){     if(cust.getEntryId > 3){        cust.setTakeStatus(1);        update(cust);        Sd sd = new Sd();        sd.setUser(currentUser);        sd.setCust(cust);        sd.setTakeTime(new Date());        sdDao.save(sd);     }   }}如上例代码,两个用户同时操作,查询出来的customerList可能包含相同的记录,下边遍历,根据entryId的值,进行更新和插入操作。这样就会出现两个用户重复更新一个customer,并且插入到SD表中两条记录。如何避免这种重复的操作?
查看完整描述

4 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

通过加锁同步解决


查看完整回答
反对 回复 2019-04-19
?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

加入行级锁定,


查看完整回答
反对 回复 2019-04-19
  • 4 回答
  • 0 关注
  • 520 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信