Hibernate Validator 验证集
Hibernate Validator validate set
我有一个名为 @Role
的自定义验证注释,我有一个自定义验证器可以验证 User
并且它有效。问题是当我想在 Set<User>
上使用这个验证器来验证这个集合上的每个元素时,就像这样
public class Project {
// Validates
@Role
private User creator;
// Throws error
@Role
private Set<User> users;
}
这很遗憾地抛出了这个错误:
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'cz.studenthub.validators.annotations.Role' validating type 'java.util.Set<cz.studenthub.core.User>'
有没有什么方法可以验证集合而不必为 Set<User>
编写新的验证器?
注意:我不想将 @Valid
用于 User
,因为该实例不需要完全有效,它只需要满足我的 [=] 验证的那个条件18=].
如果可以的话,我建议您使用 Hibernate Validator 6.0.0.Beta2。
我们现在支持容器元素约束,因此您只需执行以下操作:
public class Project {
// Validates
@Role
private User creator;
private Set<@Role User> users;
}
我们计划在一周内发布候选版本 1,因此它已经相当稳定了。
我有一个名为 @Role
的自定义验证注释,我有一个自定义验证器可以验证 User
并且它有效。问题是当我想在 Set<User>
上使用这个验证器来验证这个集合上的每个元素时,就像这样
public class Project {
// Validates
@Role
private User creator;
// Throws error
@Role
private Set<User> users;
}
这很遗憾地抛出了这个错误:
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'cz.studenthub.validators.annotations.Role' validating type 'java.util.Set<cz.studenthub.core.User>'
有没有什么方法可以验证集合而不必为 Set<User>
编写新的验证器?
注意:我不想将 @Valid
用于 User
,因为该实例不需要完全有效,它只需要满足我的 [=] 验证的那个条件18=].
如果可以的话,我建议您使用 Hibernate Validator 6.0.0.Beta2。
我们现在支持容器元素约束,因此您只需执行以下操作:
public class Project {
// Validates
@Role
private User creator;
private Set<@Role User> users;
}
我们计划在一周内发布候选版本 1,因此它已经相当稳定了。