При высокой степени параллелизма приложение активирует уникальные ограничения при сохранении новых данных. Таким образом, у нас есть механизм повтора для повторного получения данных из БД, и если данные уже присутствуют, мы не будем сохранять их снова.
Но в логике повтора при попытке получить данные из postgresDB мы получаем следующую ошибку:
ОШИБКА: HHH000099: произошел сбой утверждения (это может указывать на ошибку в Hibernate, но, скорее всего, связано с небезопасным использованием сеанса): org.hibernate.AssertionFailure : нулевой идентификатор в записи io.cred.rj.demo.entity.Merchant (не очищать сеанс после возникновения исключения)
Повторная попытка работала изначально, но теперь всегда получаю ошибку сбоя утверждения.
Я пытался перехватить конкретное исключение, а также выполнить откат, если произошло нарушение целостности данных. Но после исключения uniqueconstraint каждый раз при извлечении БД возникает ошибка AssertionFailure при переходе в спящий режим.
Пример кода:
public void cleanseMerchant(Merchant description, String mcc) {
try {
updateOrAddMerchant(description,mcc );
}catch(Exception e) {
//Retrying again
updateOrAddMerchant(description,mcc );
}
}
public void updateOrAddMerchant(Merchant description, String mcc) {
Merchant merchant=merchantDao.findByDescAndMcc(description,mcc);
if(merchant == null) {
Merchant merchant = new Merchant();
merchant.setMerchantDesc(description);
//set other fields
merchantDao.save(merchant);
}else {
updateMerchantInfo();
}
}
Подробнее здесь: https://stackoverflow.com/questions/786 ... -exception
Повторная попытка после ошибки базы данных вызывает исключение Hibernate ⇐ JAVA
Программисты JAVA общаются здесь
1719904399
Anonymous
При высокой степени параллелизма приложение активирует уникальные ограничения при сохранении новых данных. Таким образом, у нас есть механизм повтора для повторного получения данных из БД, и если данные уже присутствуют, мы не будем сохранять их снова.
Но в логике повтора при попытке получить данные из postgresDB мы получаем следующую ошибку:
ОШИБКА: HHH000099: произошел сбой утверждения (это может указывать на ошибку в Hibernate, но, скорее всего, связано с небезопасным использованием сеанса): org.hibernate.AssertionFailure : нулевой идентификатор в записи io.cred.rj.demo.entity.Merchant (не очищать сеанс после возникновения исключения)
Повторная попытка работала изначально, но теперь всегда получаю ошибку сбоя утверждения.
Я пытался перехватить конкретное исключение, а также выполнить откат, если произошло нарушение целостности данных. Но после исключения uniqueconstraint каждый раз при извлечении БД возникает ошибка AssertionFailure при переходе в спящий режим.
Пример кода:
public void cleanseMerchant(Merchant description, String mcc) {
try {
updateOrAddMerchant(description,mcc );
}catch(Exception e) {
//Retrying again
updateOrAddMerchant(description,mcc );
}
}
public void updateOrAddMerchant(Merchant description, String mcc) {
Merchant merchant=merchantDao.findByDescAndMcc(description,mcc);
if(merchant == null) {
Merchant merchant = new Merchant();
merchant.setMerchantDesc(description);
//set other fields
merchantDao.save(merchant);
}else {
updateMerchantInfo();
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78695508/retrying-after-database-error-causes-hibernate-exception[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия