当前缀为 "is" 而不是 "get" 时,Hibernate-Validator 是否应该忽略布尔(对象)getter?

Should Hibernate-Validator ignore Boolean (object) getters when prefixed with "is" rather than "get"?

public class YourAnnotatedBean {

private Boolean activated;

@Valid
@NotNull
public Boolean isActivated() {
    return activated;
}

public void setOn(Boolean activated) {
    this.activated = activated;
}

}

Hibernate-validator 在布尔值 getter 上称为 isActivated 时似乎会忽略 @NotNull。如果我将其重命名为 getActivated,就会强制执行约束。我只想重命名 getter,但这是来自 swagger-codegen。

我的问题是这是故意的还是错误?据我所知,JavaBeans 规范没有提到布尔包装器对象。如果这不是错误,我们需要更新 swagger-codegen 以不对布尔值使用 "is" 前缀。

在 Java Bean 约定中,"is" 是仅对原始布尔值有效的前缀。

这里有一个布尔值,所以它实际上应该是 getActivated()。这就是HV忽略它的原因。

您是否有机会将约束添加到 属性 而不是 getter?

我们有一个允许替代 属性 选择器的长期项目,但目前它只是一个项目(参见 https://hibernate.atlassian.net/browse/HV-1363)。