当前缀为“是”而不是“获取”时,Hibernate-Validator是否应忽略布尔(对象)getter?

时间:2018-01-30 10:41:35

标签: hibernate-validator swagger-codegen

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”前缀。

1 个答案:

答案 0 :(得分:2)

在Java Bean约定中,“is”是仅用于原始布尔值的有效前缀。

这里有一个布尔值,所以它应该是getActivated()。这就是HV无视它的原因。

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

我们有一个允许替代财产选择者的长期项目,但是现在,它只是一个项目(见https://hibernate.atlassian.net/browse/HV-1363)。