3.2.12.3.1. Обработка исключений нарушения уникальности

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

Собственное сообщение нужно добавить в главный пакет сообщений модуля web с ключом, соответствующим имени уникального индекса базы данных в верхнем регистре. Например:

IDX_SEC_USER_UNIQ_LOGIN = Пользователь с таким логином уже существует

Так, например, если вы получили уведомление:

unique constraint message

и затем добавили

IDX_DEMO_PRODUCT_UNIQ_NAME = A product with this name already exists

к главному пакету сообщений, вы получите следующее уведомление:

unique constraint message 2

Распознавание ошибок нарушения уникальности производится классом UniqueConstraintViolationHandler, который использует регулярные выражения, зависящие от типа используемой базы данных. Если стандартное выражение не распознает ошибки уникальности вашей БД, задайте подходящее выражение с помощью свойства приложения cuba.uniqueConstraintViolationPattern.

Вы также можете полностью заменить стандартный обработчик, предоставив свой собственный обработчик исключений с более высоким приоритетом, например @Order(HIGHEST_PLATFORM_PRECEDENCE - 10).