Я разрабатываю API с загрузкой Spring, в котором у меня есть объект, у которого есть другой объект, у которого есть поле, которое мне нужно проверить. Это следующие:
CodigoDTO
public final class CodigoDTO {
private String codigo;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String accion;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private UserDTO user;
}
UserDTO
public final class UserDTO {
@ValidIdDocument(message = ERROR_DNI_NIE_FORMAT, checkNie = true, checkNif = true)
private String username;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
private String password;
private String email;
@Telefono
private String tlf;
private List<CategoriaVideosExplicativos> videosExplicativosVistos;
}
Интерфейс валидатора
@Target({ ElementType.FIELD, ElementType.ANNOTATION_TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = { TelefonoValidator.class })
@Documented
public @interface Telefono {
String message() default ERROR_EMAIL_OR_TLF;
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
Я не включаю интерфейс валидатора, потому что он не актуален.
Итак, дело в том, что я отправляю объект CodigoDTO
в мой сервис, который имеет UserDTO
и чье поле tlf
должно иметь определенный шаблон. Но валидатор не запускается.
Обратите внимание, что я знаю, что вместо этого я могу поместить аннотацию в поле UserDTO
в CodigoDTO
, но это не значит, что это правильный способ сделать это.
Как я мог этого достичь? Спасибо!