Java 使用@Enumerated批注验证字段

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

我需要验证带有@Valid注释的实体。 我的实体的一个字段可以接受一组数值,我想使用@Enumerated注释。 它可能需要的价值观​​5、10、15、20和30。 我能用那个注释处理它吗? 怎么做

谢谢

更新

我通过以下方式解决了我的问题:

@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})