Как проверить модель с помощью аннотаций без @Valid ⇐ JAVA
-
Гость
Как проверить модель с помощью аннотаций без @Valid
В свою программу я принимаю файл с номерами телефонов, который обрабатываю и добавляю в базу данных. Я могу использовать аннотацию @Valid только в параметре метода, но как тогда использовать аннотации в полях модели?
Приведенный ниже метод берет список уже полученных телефонных номеров и передает их в NotifyUser. Сервис:
private NotificationResult ConvertStringToNotifyUser(List Records){ List CorrectPhoneNumbers = новый ArrayList(); List badPhoneNumbers = новый ArrayList(); for(Строковая запись: записи){ NotifyUser notifyUser = новый NotifyUser (); notifyUser.setPhone_number(record.trim()); Ошибки ошибки = новый BeanPropertyBindingResult (notifyUser, «notifyUser»); notifyUserValidator.validate(notifyUser, ошибки); если (errors.hasErrors()) { badPhoneNumbers.add(новый BadPhoneNumber(запись, error.getFieldErrors())); } еще { корректныйPhoneNumbers.add(notifyUser); } } вернуть новый NotificationResult (correctPhoneNumbers, badPhoneNumbers); } Модель:
публичный класс NotifyUser { @Идентификатор @Column(name = "номер_телефона") @NotEmpty(message = «Номер телефона не может быть пустым») @Size(min = 11, max = 12, message = «номер телефона может начинаться с +7 или 8 и содержать 11 или 12 символов соответственно») частная строка phone_number; //другой код У меня есть идея, что я мог бы вручную написать логику проверки, идентичную аннотациям полей модели, но тогда я бы просто дублировал логику, что не кажется хорошей практикой.
В свою программу я принимаю файл с номерами телефонов, который обрабатываю и добавляю в базу данных. Я могу использовать аннотацию @Valid только в параметре метода, но как тогда использовать аннотации в полях модели?
Приведенный ниже метод берет список уже полученных телефонных номеров и передает их в NotifyUser. Сервис:
private NotificationResult ConvertStringToNotifyUser(List Records){ List CorrectPhoneNumbers = новый ArrayList(); List badPhoneNumbers = новый ArrayList(); for(Строковая запись: записи){ NotifyUser notifyUser = новый NotifyUser (); notifyUser.setPhone_number(record.trim()); Ошибки ошибки = новый BeanPropertyBindingResult (notifyUser, «notifyUser»); notifyUserValidator.validate(notifyUser, ошибки); если (errors.hasErrors()) { badPhoneNumbers.add(новый BadPhoneNumber(запись, error.getFieldErrors())); } еще { корректныйPhoneNumbers.add(notifyUser); } } вернуть новый NotificationResult (correctPhoneNumbers, badPhoneNumbers); } Модель:
публичный класс NotifyUser { @Идентификатор @Column(name = "номер_телефона") @NotEmpty(message = «Номер телефона не может быть пустым») @Size(min = 11, max = 12, message = «номер телефона может начинаться с +7 или 8 и содержать 11 или 12 символов соответственно») частная строка phone_number; //другой код У меня есть идея, что я мог бы вручную написать логику проверки, идентичную аннотациям полей модели, но тогда я бы просто дублировал логику, что не кажется хорошей практикой.
Мобильная версия