Necesito crear una anotación de restricción personalizada que pueda acceder al valor de otro campo de mi bean. Utilizaré esta anotación para validar el campo porque depende del valor de la otra, pero la forma en que la defino, el compilador dice "El valor para el atributo de anotación" de mi campo "debe ser una expresión constante".Campo de variable en una anotación de restricción
he definido de esta manera:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy=EqualsFieldValidator.class)
@Documented
public @interface EqualsField {
public String field();
String message() default "{com.myCom.annotations.EqualsField.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class EqualsFieldValidator implements ConstraintValidator<EqualsField, String>{
private EqualsField equalsField;
@Override
public void initialize(EqualsField equalsField) {
this.equalsField = equalsField;
}
@Override
public boolean isValid(String thisField, ConstraintValidatorContext arg1) {
//my validation
}
}
y en mi frijol Quiero algo como esto:
public class MyBean{
private String field1;
@EqualsField(field=field1)
private String field2;
}
¿Hay alguna manera de definir la anotación por lo que el valor del campo puede ser una variable?
Gracias
Hola, u puede compartir el código de trabajo? Será de gran ayuda. Incluso estoy enfrentando el mismo problema. –