3.2.12.3.1. Обработка исключений нарушения уникальности
Фреймворк предоставляет возможность установить собственное сообщение, отображаемое обработчиком для ошибки ограничения уникальности в базе данных.
Собственное сообщение нужно добавить в главный пакет сообщений модуля web
с ключом, соответствующим имени уникального индекса базы данных в верхнем регистре. Например:
IDX_SEC_USER_UNIQ_LOGIN = Пользователь с таким логином уже существует
Так, например, если вы получили уведомление:
и затем добавили
IDX_DEMO_PRODUCT_UNIQ_NAME = A product with this name already exists
к главному пакету сообщений, вы получите следующее уведомление:
Распознавание ошибок нарушения уникальности производится классом UniqueConstraintViolationHandler
, который использует регулярные выражения, зависящие от типа используемой базы данных. Если стандартное выражение не распознает ошибки уникальности вашей БД, задайте подходящее выражение с помощью свойства приложения cuba.uniqueConstraintViolationPattern.
Вы также можете полностью заменить стандартный обработчик, предоставив свой собственный обработчик исключений с более высоким приоритетом, например @Order(HIGHEST_PLATFORM_PRECEDENCE - 10)
.