我是新来休眠验证器JSR303休眠动态验证器
我想有一个注释和许多实现。问题是,该注释应该放置在相应的实现模块(xx-command,xx-query)中的domain(api)模块和实现中。所以@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 {};
}
这是我的项目结构(以依赖顺序访问命令取决于访问查询,在infrastrucutre访问查询dependes ...)
-API
-infrastructure
-accessor查询
-accessor命令
我发现this问题,并希望使用XML配置(见在回答编辑部分),但它没有帮助,因为我想用在执行许多模块>>>提到here
给定实体只能在所有配置文件中配置一次。给定约束注释的约束定义也是如此。它只能出现在一个映射文件中。如果违反这些规则,则抛出ValidationException。
所以我不能将约束分割为多个xml配置。
此验证程序的基本需求是查看存储库并验证指定对象是否已存在。我也在我的项目中使用spring,所以如果有人有更好的方法如何做到这一点(即使是春季或其他框架),这将是受欢迎的。
感谢