У меня есть требование, когда я обновляю строки в соответствии с uuid, где один uuid может быть связан с несколькими строками.Обновление Hibernate иногда не работает
Вот сценарий: 4a90558c-4a5b-4af7-8c68-60ff81f74ef3 - это мой uuid и он существует в 8 столбцах моей БД.
и мой Java-код выглядит следующим образом:
try{
session = sessionFactory.getCurrentSession();
tx = session.getTransaction();
criteria = session.createCriteria(Archive.class);
criteria.add(Restrictions.eq("bagUuid", "4a90558c-4a5b-4af7-8c68-60ff81f74ef3"));
ScrollableResults items = criteria.scroll();
while (items.next()) {
Archive archive = (Archive)items.get(0);
archive.setDecision(1);
archive.setOperatorAssigned("test");
session.saveOrUpdate(archive);
session.flush();
session.clear();
}
tx.commit();
LOGGER.info("Archive Record is updated: "+archive.getFilePath());
}catch(Exception e){
recordUpdated = false;
tx.rollback();
LOGGER.error("Archive Record failed to update due to exception in updateArchiveRecord method: "+e.getMessage());
}
Здесь иногда все записи, связанные с UUID обновляется, но иногда не удается. Я думаю, что это может быть проблемой с Hibernate API. С кем-то сталкивается одна и та же проблема.
Если кто-то сказал вам, что что-то не удалось, что бы ваш следующий вопрос? Скорее всего, это было бы так: в каком случае это провалилось? Он игнорировал обновления или выдавал исключение? Если это исключение, что бы вы спросили дальше? Возможно: какое исключение? –
использовать 'e.printStackTrace();' в catch –
Никаких исключений вообще. иногда он обновляет 8, иногда 2, а иногда 3 – subhfyu546754