gpt4 book ai didi

java - JSR303 Hibernate动态 validator

转载 作者:太空宇宙 更新时间:2023-11-04 12:52:21 25 4
gpt4 key购买 nike

我是 hibernate validator 的新手

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

@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 {};
}

这是我的项目结构(按照依赖顺序,访问器命令取决于访问器查询,访问器查询取决于基础设施...)
-api
-基础设施
-访问器查询
-访问器命令

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

A given entity can only be configured once across all configuration files. The same applies for constraint definitions for a given constraint annotation. It can only occur in one mapping file. If these rules are violated a ValidationException is thrown.

所以我无法将约束拆分为多个 xml 配置。

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

谢谢

最佳答案

您的问题被标记为“spring”,因此您可以使用 springs 验证,该验证在幕后使用 hibernate :

[spring validation][1]

让你的 validator 实现 spring Validator 接口(interface),创建它的 bean,就这样。

关于java - JSR303 Hibernate动态 validator ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35700731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com