Обработка исключений, нарушающих уникальные ограничения
Фреймворк Jmix позволяет настроить сообщение, отображаемое обработчиком исключений при ошибках нарушения ограничений БД.
Кастомное сообщение должно быть указано в пакете сообщений. Ключ сообщения должен содержать префикс databaseUniqueConstraintViolation
плюс уникальное имя индекса базы данных в верхнем регистре. Например:
Итак, уведомление по умолчанию выглядит следующим образом:
![with default exception message](../_images/exception-handlers/with-default-exception-message.png)
После добавления кастомного ключа сообщения получается следующее уведомление:
![with custom exception message](../_images/exception-handlers/with-custom-exception-message.png)
Обнаружение ошибок нарушения ограничений БД выполняется классом UniqueConstraintViolationHandler
, который определяет тип исключения путем поиска специальной маркерной строки в сообщениях всех исключений в цепочке.
Стандратный обработчик также можно полностью заменить, предоставив свой собственный обработчик исключений с более высоким приоритетом, например, @Order(JmixOrder.HIGHEST_PRECEDENCE - 10)
.