java - 使用 org.hibernate.validator.internal.cfg.context 在方法上创建约束
问题描述
我目前正在重构一段代码,因为看起来 hibernate 的人在版本兼容性方面的记录很差。
我们hibernate-validator-5.0.2.Final
最初使用的是,我必须将其升级到hibernate-validator-6.0.16.Final
. 公共课程,例如:ConfiguredConstraint.java
已更改为非公共课程,现在它们似乎不再起作用了!
我可以看到引入了很多新方法和类,但有点坚持使用。
我需要创建约束method
,现在有 N 种方法,我无法确定从这个包中使用哪一种:org.hibernate.validator.internal.cfg.context
我知道这是一个非常抽象的信息,但如果有人知道如何处理并在高层次上实施,将不胜感激!
TIA
解决方案
你不应该直接使用internal
包装中的东西。
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
从这个配置中构建你的。
推荐阅读
- matlab - cell2mat 在执行转换时从元胞数组中消除一列
- reactjs - 与 react-final-form 一起使用时,textarea 中未填充 defaultValue
- python - 根据新值对 CSV 进行排序并打印前 10 行
- c# - C# windows 媒体播放器事件:播放列表完成时
- python - 删除列表中的重复项并使用重复项在第一个出现的列表索引中创建子列表
- php - 在php上上传多个图像
- r - Rpart 为测试集中的每个观察预测 0 和 1
- node.js - 下载 GeckoDriver 时 webdriver-manager 更新失败
- android - 如何从 JSON 数组中获取单个随机 JSONObject
- html - 背景 CSS 不显示在包装器后面