java - HibernateValidator 如何在 validatedBy 为空时找到 ConstraintValidator?

标签 java hibernate hibernate-validator

我想知道 Hibernate 如何找到扩展 ConstraintValidator 接口(interface)的 NullValidator 类,即使 @Null 注释定义如下:

@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = { })
public @interface Null {}

最佳答案

validatedBy 只需要为自定义(即用户创建的)约束指定。 Hibernate 已知的所有内置约束都会自动映射。请参阅以下代码,它出现在 ConstraintDescriptorImplXmlMappingParser 中:

if ( constraintHelper.isBuiltinConstraint( annotationType ) ) {
    constraintDefinitionClasses.addAll( constraintHelper.getBuiltInConstraints( annotationType ) );
}
else {
    Class<? extends ConstraintValidator<?, ?>>[] validatedBy = annotationType
            .getAnnotation( Constraint.class )
            .validatedBy();
    constraintDefinitionClasses.addAll( Arrays.asList( validatedBy ) );
}

ConstraintHelper 有一个所有内置约束的列表,可以通过这些注解类型的 isBuiltinConstraint 方法找到。

关于java - HibernateValidator 如何在 validatedBy 为空时找到 ConstraintValidator?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38956620/

相关文章:

Java SWT如何确定一个widget可编辑

java - 如何在Java中将二进制小数转换为十六进制?

java - 实体列表创建一个单独的表,而不是包含在实体本身中

java - 带有用于启动/停止的 Maven 插件的轻量级 Java 数据库?

spring - 使用 Spring 4 和消息插值配置在 ConstraintValidator 中注入(inject)存储库

java - 检查预定义的字符串值 Hibernate Validator

spring-mvc - 如何对嵌套列表对象进行 Hibernate 验证?

Java在不同地方同时修改列表

java - JClouds-Chef BootstrapConfig Builder MissingMethodException

java - JPA和Hibernate注解的关系