多线程时在Spring数据存储库中未更新数据

时间:2018-07-13 06:06:49

标签: java spring multithreading spring-data-jpa

我有两个线程处理数据库。一个从数据中接收数据,并将“ RunningState”设置为0。另一个旋转直到找到存储库中的数据更新为0,然后继续。

线程1:

 appliance.setRunningState(newMode);
 appliance.setLastSendDataTime(send_time);
 applianceRepository.saveAndFlush(appliance);
 return "success";

线程2:

while(true){
            appliance = applianceRepository.findByUserAndAid(user.getUid(), aid);
            if (appliance == null){
                return "err: no appliance with Id "+aid;
            }
            if ( appliance.getRunningState() == 0 )
                return recv_message;

        }

但是,在IDEA的调试模式下,我发现线程2中获得的runningState始终为1,因此它永远不会返回。它怎么会发生,我该如何解决这个问题?

0 个答案:

没有答案