【问题标题】:Is Hibernate Validator @NotNull always triggered first?Hibernate Validator @NotNull 总是先触发吗?
【发布时间】:2016-06-30 18:03:59
【问题描述】:

换句话说,如果我有两个约束,例如 @Email@NotNull@Email 验证器不会抛出 NPE?

这似乎很明显,但我问是因为我看到一些自定义验证器检查要验证的值是否为 null,如果是则返回 true。这似乎是个坏主意,因为如果开发人员忘记将 @NotNull 添加到 email 字段,那么电子邮件字段仍将通过验证。

TIA, 奥莱

【问题讨论】:

    标签: java hibernate validation hibernate-validator


    【解决方案1】:

    null 返回true 被认为是Bean 中的最佳实践 验证和所有内置约束都遵守它(在可能的情况下)。 Bean Validation 规范在3.4. Constraint validation implementation 部分中说:

    虽然不是强制性的,但将 来自非空约束验证的核心约束验证 (例如,@Email 约束将在 null 对象上返回 true, 即不会处理@NotNull 验证)。

    null 可以有多种含义,但通常用于表示一个 value 没有意义,不可用或只是未知。 在大多数情况下,对值的这些约束与其他约束是正交的 约束。例如,如果存在字符串,则必须是电子邮件,但 可以为空。将这两个关注点分开是一种很好的做法。

    【讨论】:

      猜你喜欢
      • 2013-06-12
      • 2019-04-19
      • 2018-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多