Я запутался в ситуации.Представьте себе класс, подобный Person:
@Entity
class Person {
@NotBlank(message="Some message")
@Column(name="ssn", nullable=false, unique=true)
String ssn;
...
}
Ну, ssn
должен быть уникальным, и я могу сделать это с помощью оператора unique=true
, но для отображения некоторого сообщения для пользователей утверждение будетприятно:
@AssertTrue(message="SSN is already in use.")
public boolean isSsnAvailable() {
// database query
}
Как вы думаете, это хорошая практика?Для меня это немного странно, потому что кажется, что сущность становится слишком сложной, добавляя к ней доступ к базе данных.
Я думал о двух других возможностях:
- Создание собственного валидатора саннотация типа
@Unique
. - Создайте временный атрибут с именем
ssnAvailable
, который будет заполнен PersonService.