为什么@AssertTrue在@NotNull工作时不起作用?

Jin*_*won 5 java hibernate-validator bean-validation

我正在研究一个实体库.我在我的实体上添加了一些bean验证注释.

我坚信在类路径上有一个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;
}
Run Code Online (Sandbox Code Playgroud)

我可能做错了什么?

我使用org.hibernate:hibernate-validator和更改它org.apache.bval:bval-jsr没有任何区别.

UPDATE

实际上是调用该方法.我检查日志.

这是我的方法.

@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;
}
Run Code Online (Sandbox Code Playgroud)

Jin*_*won 9

我想我找到了答案.

/sf/answers/906540141/

我不得不重命名方法isExeclusivelySystemOrOwned.

这就是为什么它被称为Bean -Validation.

  • *在 2023 年仍然相关。我可以确认提到的答案 /sf/answers/906540141/ 也对我有用。荒野。 (2认同)