使用 org.hibernate.validator.internal.cfg.context 对方法创建约束
Use org.hibernate.validator.internal.cfg.context for creating constraint on a method
我目前正在重构一段代码,因为看起来 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
。
我目前正在重构一段代码,因为看起来 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
。