Validation API: сложные проверки

Автор PremaServices - Понедельник, 24 Июнь 2013. В рубриках: Validation API, Hibernate

Аннотация уровня класса объекта

Validation API: сложные проверки

Под сложной проверкой подразумеваются случаи, когда условие накладывается не на одно свойство объекта, а сразу на несколько. В этом случае требуется описать аннотацию уровня класса с @Target(ElementType.TYPE), где реализовать все необходимое. Один такой пример проверки на уникальность объекта @Unique уже был реализован нами ранее. Рассмотрим ещё один простой случай, когда свойства объекта связаны между собой логическими отношениями.

Validation API: проверка объекта на уникальность при помощи @Unique

Автор PremaServices - Понедельник, 24 Июнь 2013. В рубриках: Validation API, Hibernate

Реализация собственного класса валидации

Validation API: проверка объекта на уникальность при помощи @Unique

Проверка нового объекта на уникальность при сохранении в базу данных - одна из самых необходимых проверок. Однако, в Hibernate через Validation API она по умолчанию не реализована по ряду вполне допустимых причин. Вследствие этого, такая проверка стандартно выполняется уже на более низком уровне при взаимодействии фреймворка с СУБД и в случае нарушения целостности базы данных бросает исключение HibernateException.

Конечно, это не слишком удобно извлекать информацию из исключения и пытаться понять, почему оно произошло: то ли целостность нарушена при сохранении, то ли ещё много и много различных других причин...

В хорошем приложении нарушение целостности лучше фиксировать заранее и посылать пользователю красивое сообщение об ошибке, а не HibernateException, чтобы он мог поправить ситуацию. Это можно реализовать обычными дополнительными методами, но более привлекательно и удобно создать специальную аннотацию, тем более если в приложении во всю используется Validation API. Этот подход реализован в данной статье.

Validation API: собственный валидатор на примере @NotNullObjectId

Автор PremaServices - Среда, 19 Июнь 2013. В рубриках: Validation API, Hibernate

Проверка данных в Spring + Hibernate

Validation API: собственный валидатор на примере @NotNullObjectId

Проверка пользовательских данных в Spring является одним из ключевых моментов в разработке приложений, и просто необходима, если мы хотим создать стабильный и дружественный пользователю проект. Обычно она производится на двух этапах: как на стороне клиента при помощи скриптов, например, JQuery, так и на стороне сервера.

Для этой цели в этой статье мы используем Hibernate Validation API, который расширяет стандартные возможности Java Validation API, и в свою очередь расширим его возможности, создав свой собственный класс валидации.

Определим проблему и поставим задачу. У меня есть web-приложение по учету студентов в одной из заочных школ астрологии. При регистрации нового студента менеджеру необходимо указать в каком городе (и, соответственно, стране) он проживает. Естественно, по мере необходимости менеджер добавляет в таблицы стран и городов новые значения, расширяя географию учащихся.

Вот на этом простейшем примере стран и городов мы и рассмотрим решение нашей задачи.