для какого-нить DataIntegrityViolationException - что делать? Очень общая ошибка и не всегда нужно ставить ретрай.
Так по 1 ничего не сделаешь же, ошибка либо в данных, либо в коде. Если запрос с ui, можно валидировать в дто
Ну вот я привел пример с нарушением констрейнта уникальности. Это не ошибка, это race condition
Пока не понимаю, как может быть race condition в таком случае
Вы когда добавляете пользователя с условием уникальности email или username - вы лочите всю таблицу?
Нет. В транзакции изменение
А какого уровня транзакцию юзаете - serializable? Раз таких ошибок у вас нет?
А какая ошибка, это же две разные строчки, никак не связанные между собой, откуда нарушение ограничения?
Ну вот у нас констрейнт в бд на уникальность username. Первый пользователь добаляет constraint@mail.com и второй тоже добавляет constraint@mail.com. Бам DataIntegrityViolationException
Понял, ну в любом случае, ничего не сделать, данные же не поменяем самостоятельно, отдать ошибку на ui. Как при проблеме оптимистичной блокировки, извините, занято имя, не успели
Да, но вот след. проблема это как понять, что именно DataIntegrityViolationException означает. Ибо это не всегда конфликт уникальности. Поэтому интересно как правильно обрабатывать DataIntegrityViolationException
вторая ошибка общая
Да и как ее обрабатывать? Как опознать, что это именно например нарушение уникальности ключа, а не что либо еще?
Обсуждают сегодня