gpt4 book ai didi

java - JSR-349 Bean 验证注释可以用于验证 Java 时间类型吗?

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

Java Bean Validation 1.1 (JSR-349) 定义了诸如 @Future@Past 之类的注释来验证时间类型,但它们仅适用于开箱即用的 java.util.Datejava.util.Calendar

我正在使用 java.time.LocalDate 类型的字段,并希望强制它在未来,但要做到这一点,我似乎必须编写自己的 @Future 注释来支持这种类型,这很遗憾,因为 @javax.validation.constraints.Future 在语义上是理想的。

考虑到 BV 1.1 中现在提供的增强选项,是否可以将 validator 配置为使用现有的 @javax.validation.constraints.Future 注释以及支持新 Java 时间类的自定义 ConstraintValidator

编辑

理想情况下,我希望完全使用 Java 代码来完成此操作,而不需要编写任何 XML。虽然下面建议的基于 XML 的解决方案是可以接受的,但如果可以的话,我宁愿不使用 XML。

最佳答案

终于明白了。这是自定义约束定义的 Java 版本。

HibernateValidatorConfiguration conf = (HibernateValidatorConfiguration) Validation.byDefaultProvider().configure();
conf.addConstraintDefinitionContributor((constraintDefinitionContributionBuilder) -> {
constraintDefinitionContributionBuilder.constraint(Future.class)
.validatedBy(MyCustomFutureConstraintValidator.class)
.includeExistingValidators(true);
});
Validator validator = conf.buildValidatorFactory().getValidator();

关于java - JSR-349 Bean 验证注释可以用于验证 Java 时间类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32628122/

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