Java 使用@Enumerated批注验证字段
我需要验证带有@Valid注释的实体。 我的实体的一个字段可以接受一组数值,我想使用@Enumerated注释。 它可能需要的价值观5、10、15、20和30。 我能用那个注释处理它吗? 怎么做 谢谢 更新 我通过以下方式解决了我的问题:Java 使用@Enumerated批注验证字段,java,spring,hibernate,annotations,Java,Spring,Hibernate,Annotations,我需要验证带有@Valid注释的实体。 我的实体的一个字段可以接受一组数值,我想使用@Enumerated注释。 它可能需要的价值观5、10、15、20和30。 我能用那个注释处理它吗? 怎么做 谢谢 更新 我通过以下方式解决了我的问题: @ValidateIntegerSet(acceptedValues={5, 10, 15, 20, 30}) 我创建了一个注释@ValidateIntegerSet @Documented @Retention(RetentionPolicy.RU
@ValidateIntegerSet(acceptedValues={5, 10, 15, 20, 30})
我创建了一个注释@ValidateIntegerSet
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.FIELD,ElementType.CONSTRUCTOR,ElementType.PARAMETER,ElementType.ANNOTATION_TYPE})
@Constraint(validatedBy=IntegerSet.class)
public @interface ValidateIntegerSet {
int[] acceptedValues();
String message() default "Il valore inserito non è tra quelli ammissibili";
Class<?>[] groups() default { };
Class<? extends Payload>[] payload() default { };
}
@列举
这肯定是不起作用的。您需要定制验证器,因为没有内置验证器。您可以尝试使用@Pattern
建议:为此编写您自己的验证器。枚举和模式注释的方式是错误的。最好的方法是创建自定义验证器。谢谢你的提示!
@ValidateIntegerSet(acceptedValues={5, 10, 15, 20, 30})