Java 是否可以使用Hibernate验证运行一个具体的验证
我们在一个项目中使用Hibernate验证已经很长时间了,而且效果很好。 但我想知道是否可以只按需运行某些验证,而不是在对验证器调用valid()时或在保存之前。 例如,我有一门课:Java 是否可以使用Hibernate验证运行一个具体的验证,java,hibernate,validation,Java,Hibernate,Validation,我们在一个项目中使用Hibernate验证已经很长时间了,而且效果很好。 但我想知道是否可以只按需运行某些验证,而不是在对验证器调用valid()时或在保存之前。 例如,我有一门课: @ValidationOne @ValidationTwo @Entity public class MyClass{ ... } ValidationOne和ValidationTwo由一个接口定义,如Validation Api所述: @Target({ ElementType.TYPE, ANNOTA
@ValidationOne
@ValidationTwo
@Entity
public class MyClass{
...
}
ValidationOne和ValidationTwo由一个接口定义,如Validation Api所述:
@Target({ ElementType.TYPE, ANNOTATION_TYPE })
@Retention(RUNTIME)
@Constraint(validatedBy = ValidationOneValidator.class)
@Documented
public @interface ValidationOne {
String message() default "{ValidationOne.invalid.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
@Target({ElementType.TYPE,ANNOTATION\u TYPE})
@保留(运行时)
@约束(validatedBy=validationNoValidator.class)
@记录
public@interface-ValidationOne{
字符串消息()默认值“{ValidationOne.invalid.message}”;
类[]组()默认值{};
类请参见批注定义上的groups()
属性?它允许您使用类指定要运行的验证
例如,让我们假设:
public class SingleRun {}
@ValidationOne(groups={SingleRun.class, javax.validation.groups.Default.class})
@ValidationTwo
@Entity
public class MyClass{...}
这允许您像这样运行单个验证:
javax.validation.Validator validator = ...;
MyClass myClass = ...;
validator.validate(myClass, SingleRun.class);
手动验证时,可以指定要通过组类运行的验证。如果未指定验证,则假定为默认组
javax.validation.Validator validator = ...;
MyClass myClass = ...;
validator.validate(myClass, SingleRun.class);