gpt4 book ai didi

java - 使用 org.hibernate.validator.internal.cfg.context 创建方法约束

转载 作者:行者123 更新时间:2023-12-01 17:55:37 25 4
gpt4 key购买 nike

我目前正在重构一段代码,因为看起来 hibernate 人员在版本兼容性方面有不好的记录。

我们最初使用的是 hibernate-validator-5.0.2.Final,我必须将其升级到 hibernate-validator-6.0.16.Final。公共(public)类,例如:ConfiguredConstraint.java 已更改为非公共(public)类,它们现在似乎不再工作了!

我可以看到引入了很多新方法和类,但有点坚持使用。

我需要对 method 创建约束,现在有 N 个方法,我无法确定要使用此包中的哪一个:org.hibernate.validator.internal .cfg.context

我知道这是一个非常抽象的信息,但如果有人知道如何处理这个问题并在高层次上实现,我将不胜感激!

TIA

最佳答案

您不应该直接使用 internal 包中的内容。

参见 https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-programmatic-api 的示例 12.8 .

HibernateValidatorConfiguration configuration = Validation
.byProvider( HibernateValidator.class )
.configure();

ConstraintMapping constraintMapping = configuration.createConstraintMapping();

constraintMapping
.type( Car.class )
.constructor( String.class )
.parameter( 0 )
.constraint( new SizeDef().min( 3 ).max( 50 ) )
.returnValue()
.valid()
.method( "drive", int.class )
.parameter( 0 )
.constraint( new MaxDef().value( 75 ) )
.method( "load", List.class, List.class )
.crossParameter()
.constraint( new GenericConstraintDef<>(
LuggageCountMatchesPassengerCount.class ).param(
"piecesOfLuggagePerPassenger", 2
)
)
.method( "getDriver" )
.returnValue()
.constraint( new NotNullDef() )
.valid();

然后根据此配置构建您的 ValidatorFactory

关于java - 使用 org.hibernate.validator.internal.cfg.context 创建方法约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60722928/

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