oly*_*ren 5 java hibernate hibernate-validator
我想知道Hibernate如何找到NullValidator扩展ConstraintValidator接口的类,即使@Null注释定义如下:
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { })
public @interface Null {}
Run Code Online (Sandbox Code Playgroud)
validatedBy只需要为自定义(即用户创建的)约束指定。Hibernate 已知的所有内置约束都会自动映射。请参阅以下代码,该代码出现在ConstraintDescriptorImpl和中XmlMappingParser:
if ( constraintHelper.isBuiltinConstraint( annotationType ) ) {
constraintDefinitionClasses.addAll( constraintHelper.getBuiltInConstraints( annotationType ) );
}
else {
Class<? extends ConstraintValidator<?, ?>>[] validatedBy = annotationType
.getAnnotation( Constraint.class )
.validatedBy();
constraintDefinitionClasses.addAll( Arrays.asList( validatedBy ) );
}
Run Code Online (Sandbox Code Playgroud)
ConstraintHelper具有所有内置约束的列表,这些约束将通过isBuiltinConstraint这些注释类型的方法找到。
| 归档时间: |
|
| 查看次数: |
225 次 |
| 最近记录: |