为什么 @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 的原因。