Я начинаю с игры! Framework 2 и я столкнулся с проблемой при попытке сохранить объект в базе данных (Postgres).Избегайте дублирования ключевой ошибки при сохранении объекта
Я создал модель, где есть аннотация @Column(unique = true)
по атрибуту name
. Таким образом, при сохранении должны быть два уникальных атрибута: идентификатор, который всегда правильно сгенерирован, и имя, которое является вводом, предоставленным пользователем.
Когда я проверяю ошибки в контроллере (filledForm.hasErrors()
), ошибок нет, потому что (я думаю) он не проверяет дублированные атрибуты, а только для ошибок формы.
Затем он переходит к Модели и пытается сохранить объект thebean.save();
. И затем он «сбой» и показывает ошибку в браузере.
Мой вопрос: поскольку метод save()
возвращает void, как я могу поймать эту ошибку и узнать, какая она ошибка (чтобы предупредить пользователя)?
Thanks
Как это «сбой»? Вызывает ли это исключение? Что такое сообщение об ошибке? – Kris
На самом деле, крушение это был просто способ сказать. При отладке я мог видеть, что он генерирует исключение PersistenceException. Я знаю, что могу контролировать это, создавая метод и проверяя параметр 'name' вручную в контроллере, но мне интересно, есть ли у фреймворка уже метод проверки этого автоматически, как' hasErrors() 'делает в форме. – Laerte
Не было бы достаточно использовать try {} catch {}, чтобы поймать PersistenceException? – Kris