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