java - 在哪里指定 bean 验证的组序列
问题描述
我有自定义验证,我想在所有默认验证之后运行。我知道当我们希望在控制器本身验证对象但我想显式运行验证时,我们只需要在 @Validated 注释中指定组序列。
Set<ConstraintViolation<Listing>> violations = Validation.buildDefaultValidatorFactory().getValidator().validate(listing);
if (CollectionUtils.isNotEmpty(violations))
violations.stream().forEach(violation -> errorList.add(violation.getMessage()));
我无法弄清楚如何指定我们要使用这个组序列(ListingConstraintGroupSequence.class)。
@ListingAdditionalPropertiesConstraint(groups =
ListingCustomValidationGroup.class,
additionalProperties = "additionalProperties"
)
@ListingInventoryLocationsConstraint(groups = ListingCustomValidationGroup.class,
listingInventoryLocations = "listingInventoryLocations"
)
@ListingConditionalFieldsConstraint.List({
@ListingConditionalFieldsConstraint(groups = ListingCustomValidationGroup.class,
message = "maxLimitPerUser cannot be 0 when limited is true",
booleanFlag = "limited",
field = "maxLimitPerUser"
),
@ListingConditionalFieldsConstraint(groups = ListingCustomValidationGroup.class,
message = "maxDaystoReturn cannot be 0 when willAcceptReturns is true",
booleanFlag = "willAcceptReturns",
field = "maxDaystoReturn"
)
})
@EqualsAndHashCode
@Getter
@Setter
@ToString
public class Listing implements Serializable {
//Ensures that Custom Validators are run only if the default validations pass
@GroupSequence({Default.class,ListingCustomValidationGroup.class})
public interface ListingConstraintGroupSequence {}
.
.
. }
参考问题:Bean 验证组序列不工作
解决方案
推荐阅读
- javascript - 未捕获(承诺中):TypeError:无法读取未定义的属性“userSubject”类型错误:无法读取未定义的属性“userSubject”
- database - 在 mongodb 中查找特定内容
- html - 如何使用 VBA 从嵌套的 Div 中抓取
- ios - 如何修复各种不支持 Mac Catalyst 的 CocoaPods
- python - 使用浮点索引对 numpy 数组进行采样(类似于 pytorch grid_sample)
- php - 将 laravel 项目上传到生产服务器
- react-native - 如何在导航 5 中制作自定义标题栏?
- php - 删除 myaccount 页面中的 WooCommerce noindex 元数据
- c - 分配 struct file_operations 字段时从不兼容的指针类型初始化
- c - 将C中文件中的每个单词都大写