当前缀为 "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)。
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)。