休眠更新循环问题

时间:2018-09-03 16:34:48

标签: java spring oracle hibernate

在我的应用程序中,我有一个线程,该线程遍历数据库中的多行以为每一行生成一个文件,并更新每一行的status和generation_date列。

List<VBordereau> listBordereauAgenererData = bordereauDao.getListBordereauAgenere(IConstants.Status.VALID);
    if (listBordereauAgenererData != null && !listBordereauAgenererData.isEmpty()) {
        for (VBordereau vBordereau : listBordereauAgenererData) {

                Bordereau bordereau = bordereauDao.findByID(Bordereau.class, vBordereau.getIdBord(), null);
                bordereau.setFlagDispo(Boolean.FALSE);
                bordereau.setUtilisateurLock(utilisateurDao.getUserByLogin(IConstants.LOGIN_USER_BATCH_DATA));
                bordereauDao.saveOrUpdate(bordereau, null);

                if(isKeyValid) {
                    prepareObjectData(vBordereau, deviseLocal, dateSession);
                }
                bordereau = bordereauDao.findByID(Bordereau.class, 
                vBordereau.getIdBord(), null);
                bordereau.setUtilisateurLock(null);
                bordereau.setFlagDispo(Boolean.TRUE);
                bordereauDao.saveOrUpdate(bordereau, null);

        }
    }

在prepareObjectData方法中,我有一个方法可以从vBordereau对象生成文件,并且在文件生成后,我执行以下操作以更新每一行的列

Bordereau bord = bordereauDao.findByID(Bordereau.class, vbordereau.getIdBord(), null);
            bord.setRefStatus(refStatusGen);
            bord.setDateGenerationData(new Date());
            bord.setNomFichierData(file.getName());
            bordereauDao.saveOrUpdate(bord, null);

现在在99%的情况下一切正常,但在1%的情况下更新失败,将生成文件,否则即使认为数据库值没有问题,数据库中的数据也不会更改

0 个答案:

没有答案