Обновление Hibernate в проблеме цикла - PullRequest
0 голосов
/ 03 сентября 2018

В моем приложении у меня есть поток, который перебирает несколько строк в базе данных, чтобы сгенерировать файл для каждой строки и обновить столбцы 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% обновление завершается неудачно, файл генерируется в противном случае, данные в базе данных не изменяются, даже если проблема со значениями базы данных не возникает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...