Асинхронная БД сохраняет метание исключений DataIntegrityViolationException - PullRequest
1 голос
/ 13 июня 2019

У меня есть приложение, которое асинхронно сохраняет данные в БД. Теперь проблема в том, что если в полезной нагрузке есть дубликаты (один и тот же идентификатор) или приложение получает несколько полезных данных (одинаковый идентификатор) для нескольких экземпляров, Hibernate создает вставку для них обоих. и тот, который был получен позже, выбрасывает DataIntegrityViolationException, поскольку идентификатор уже присутствует. Существует @retryable, который повторяет второй раз, Hibernate создает оператор обновления, а второй полезный груз обновляет существующую запись. Как избежать исключения.

Я пробовал также @Transactional и @Lock(LockModeType.PESSIMISTIC_WRITE). но это не сработало. Я использую Spring JPA и @Async

[{"id":1, "name":"abc"}, {"id":1, "name":"efg"}]

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