【问题标题】:JSR303 Hibernate dynamic validatorJSR303 Hibernate 动态验证器
【发布时间】:2016-02-29 13:25:08
【问题描述】:

我是休眠验证器的新手

我想要一个注释和多个实现。问题是,该注释应该放在域(api)模块中,并在相应的实现模块(xx-command,xx-query)中实现。所以@Constraint注解的参数validatedBy必须为空。
我可以以某种方式动态地告诉休眠使用可以传递我需要的类型的指定注释的所有实现。我也想在多个子模块中实现。

@Target({FIELD, PARAMETER})
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = {})
public @interface CanNotExists {

    String message() default "com.foo.api.domain.validation.annotation.CanNotExists.message";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

这是我的项目结构(按依赖顺序,accessor-command 取决于 accessor-query,accessor-query 取决于 infrastrucutre ...)
-api
-基础设施
-访问者查询
-accessor-command

我发现this 问题并想使用xml 配置(请参阅答案中的编辑部分),但这没有帮助,因为我想在许多模块中使用实现>>> 如提到的here

一个给定的实体只能在所有配置文件中配置一次。这同样适用于给定约束注释的约束定义。它只能出现在一个映射文件中。如果违反了这些规则,则会抛出 ValidationException。

所以我不能将约束拆分为多个 xml 配置。

此验证器的基本需求是查看存储库并验证指定对象是否已存在。我也在我的项目中使用 spring,所以如果有人有更好的方法来做到这一点(即使使用 spring 或其他框架),它将受到欢迎。

谢谢

【问题讨论】:

    标签: java spring hibernate validation hibernate-validator


    【解决方案1】:

    您的问题被标记为“spring”,因此您可能可以使用在引擎盖下使用休眠的 springs 验证:

    [spring validation][1]
    

    让你的验证器实现接口spring Validator,创建它的一个bean,就是这样。

    【讨论】:

      猜你喜欢
      • 2012-06-12
      • 2011-08-09
      • 2013-08-19
      • 2014-11-05
      • 2011-08-09
      • 1970-01-01
      • 2013-01-18
      • 2011-07-08
      • 1970-01-01
      相关资源
      最近更新 更多