为什么 @AssertTrue 不起作用而 @NotNull 起作用?
Why @AssertTrue doesn't work while @NotNull works?
我正在处理一个实体库。我在我的实体上放置了一些 bean 验证注释。
我坚信 class 路径中的 bean 验证实现。
@javax.validation.constraints.NotNull
有效,@javax.validation.constraints.AssertTrue
无效。
class MyEntity {
@AssertTrue // does't work
public boolean hey() {
return false;
}
@NotNull // works; violation while persist
private String some;
}
我可能做错了什么?
我使用 org.hibernate:hibernate-validator
并将其更改为 org.apache.bval:bval-jsr
没有任何区别。
更新
该方法实际被调用。我查看日志。
我的方法来了
@AssertTrue(message = "a property must be eclusively system or owned")
private boolean execlusivelySystemOrOwned() {
logger.info("execlusivelySystemOrOwnded()");
final boolean result = system ^ (getOwner() != null);
logger.log(Level.INFO, "result: {0}", result);
return result;
}
我想我找到了答案。
我不得不将方法重命名为 isExeclusivelySystemOrOwned
。
这就是它被称为 Bean-Validation 的原因。
我正在处理一个实体库。我在我的实体上放置了一些 bean 验证注释。
我坚信 class 路径中的 bean 验证实现。
@javax.validation.constraints.NotNull
有效,@javax.validation.constraints.AssertTrue
无效。
class MyEntity {
@AssertTrue // does't work
public boolean hey() {
return false;
}
@NotNull // works; violation while persist
private String some;
}
我可能做错了什么?
我使用 org.hibernate:hibernate-validator
并将其更改为 org.apache.bval:bval-jsr
没有任何区别。
更新
该方法实际被调用。我查看日志。
我的方法来了
@AssertTrue(message = "a property must be eclusively system or owned")
private boolean execlusivelySystemOrOwned() {
logger.info("execlusivelySystemOrOwnded()");
final boolean result = system ^ (getOwner() != null);
logger.log(Level.INFO, "result: {0}", result);
return result;
}
我想我找到了答案。
我不得不将方法重命名为 isExeclusivelySystemOrOwned
。
这就是它被称为 Bean-Validation 的原因。