【问题标题】:Can hibernate validator be used to validate a field depending on a field value from another classhibernate 验证器是否可以根据另一个类的字段值来验证字段
【发布时间】:2016-06-01 20:02:04
【问题描述】:

我有一个场景,我需要根据另一个类的字段值来验证一个类的某些字段。

例如:如果员工已注册团体退休计划,则街道、城市、地址类别的邮政编码不应为空。

这种情况可以使用 Hibernate Validator 的 Custom Validator 来处理吗?这是 Hibernate Validator 的好候选人吗?如果是这样,谁能给我一些例子。

我已经完成了跨领域验证示例,例如: Cross field validation with Hibernate Validator (JSR 303)

如果我有一个布尔指标来指示用户是否在地址域类中注册了团体退休计划,我知道我可以提出自定义验证器来验证这些字段。但是,我想避免向 Address 类添加指示符。同样,Address 不是 Employee 类中用于进行嵌套验证的字段。

我使用的框架是 Spring MVC 和 Mybatis 用于数据访问。验证发生在带有 @Valid 注释的 Spring Rest API 调用中。

【问题讨论】:

  • 你看过文档吗?您是否看到与您的用例相近的示例?
  • 我查看了文档,如果我在 Address 类中添加布尔指示符,我可能能够处理它。如果该字段完全属于不同的类并且地址不是其他类的子类,我找不到任何示例。

标签: validation hibernate-validator


【解决方案1】:

我想自定义类级别约束可能会起作用,但这取决于您的实际域类。目前尚不清楚例如员工、团体退休计划和这些其他实体是如何联系起来的。

Hibernate Validator 是否合适取决于您是否还有其他验证或涉及哪些其他框架。例如,如果您希望在 JPA 实时循环事件中进行验证,那么 Bean Validation 非常适合,因为它按照规范与 JPA 集成。如果您真的只有这一项验证,那么您可能只需要编写一些自定义代码。

【讨论】:

    猜你喜欢
    • 2018-09-04
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2017-02-28
    • 1970-01-01
    • 2020-10-23
    • 2019-01-25
    • 1970-01-01
    相关资源
    最近更新 更多