【问题标题】:JSR303 validations using Database connection使用数据库连接的 JSR303 验证
【发布时间】:2012-08-07 07:36:14
【问题描述】:

一般问题:

这是使用 JSR303 bean 验证,Hibernate 参考实现。

假设我有一组自定义验证;其中一些需要数据库连接(注意:我们没有使用 Hibernate 进行 DB 元素映射,所以很遗憾这不是一个选项)。例如,我可能想在持久性之前验证外键。

无论如何,在将数据库连接传递给 Validator.validate(obj) 方法时,我看不到一种方法,以便使其可用于验证实现。出于会话一致性的原因,此连接必须与调用代码中使用的连接相同。

任何想法..?我真正需要的只是一种将任何类型的运行时值放入验证器实现的方法。

谢谢,

安迪

【问题讨论】:

    标签: database bean-validation


    【解决方案1】:

    您可以创建自定义 ConstraintValidatorFactory 来实例化和配置 ConstraintValidator 对象。该工厂可以将所需的依赖项(例如数据库连接)传递给创建的约束验证器。

    如果您使用 CDI 来连接您的应用程序,您可能会对 Seam Validation(免责声明:我是作者)感兴趣,它为基于 CDI 的验证器提供依赖注入。如果您使用的是 Spring 框架,您还可以在约束验证器实现中 make use 进行依赖注入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-22
      • 2014-11-05
      • 1970-01-01
      • 2011-07-08
      • 1970-01-01
      • 2011-12-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多