public class YourAnnotatedBean {
private Boolean activated;
@Valid
@NotNull
public Boolean isActivated() {
return activated;
}
public void setOn(Boolean activated) {
this.activated = activated;
}
}
Hibernate-validator在名为isActivated的布尔getter上似乎忽略了@NotNull。如果我将其重命名为getActivated,则强制执行约束。我只是重命名getter,但这来自swagger-codegen。
我的问题是这是故意还是错误?据我所知,JavaBeans规范没有提到布尔包装器对象。如果这不是错误,我们需要更新swagger-codegen以不使用布尔区的“is”前缀。
答案 0 :(得分:2)
在Java Bean约定中,“is”是仅用于原始布尔值的有效前缀。
这里有一个布尔值,所以它应该是getActivated()。这就是HV无视它的原因。
您是否有可能将约束添加到属性而不是getter?
我们有一个允许替代财产选择者的长期项目,但是现在,它只是一个项目(见https://hibernate.atlassian.net/browse/HV-1363)。