Сделайте пользовательскую аннотацию проверки гибернации для существования электронной почты - PullRequest
2 голосов
/ 04 декабря 2011

Мне было интересно, можно ли сделать пользовательскую аннотацию проверки гибернации, которая проверит в базе данных, существует ли электронная почта или нет (вызовите метод dao и верните true, если электронная почта существует)

, чтобы я мог что-то сделатькак:

    @NotBlank(message = "email is required")
@Email(message = "{invalid.email}")
    @EmailExist(message = "{email.exist}")
@Column(name = "email", length = 155, nullable = false)       
private String email;

пожалуйста, посоветуйте с образцом, если это возможно, спасибо заранее.

Ответы [ 2 ]

1 голос
/ 31 декабря 2011

Нет необходимости в магии AspectJ. Если вы используете Spring, вам просто нужно @Autowire -annotate ваше поле, Spring будет вводить DAO. См. Spring Reference 5.7.2.2 Настройка пользовательских ограничений :

По умолчанию LocalValidatorFactoryBean настраивает SpringConstraintValidatorFactory, который использует Spring для создания Экземпляры ConstraintValidator. Это позволяет ваш обычай ConstraintValidators, чтобы извлечь выгоду из внедрения зависимостей, как любой другая бобовая весна.

Итак, ваша единственная работа - написать пользовательскую аннотацию. Легко найти образцы в Интернете.

1 голос
/ 04 декабря 2011

Да, это должно быть возможно, вам просто нужно реализовать свою собственную реализацию валидатора аннотаций.

Если вы используете реальный AspectJ и аннотируете класс с помощью @Configurable, тогда вы используете @Inject, как и в любом другомspring bean.

@ См .:

...