java - Java Bean Validation:如何将验证与验证组级联?
问题描述
我有一个类级别的注释,我someField
在检查另一个类型的字段之前使用它来检查Bar
@SomeClassValidation
class Foo {
String someField;
@Valid
Bar someBar;
}
的实现ConstraintValidator<SomeClassValidation, Foo>
看起来像:
if(someField == someExpectedValue) {
return someBar != null;
}
当初始检查@SomeClassValidation
通过时,我还需要验证Bar
类中的字段,如下所示:
class Bar {
@NotEmpty
@Size(min=2, max=2)
String fieldA;
@NotEmpty
@Size(min=3, max=10)
String fieldB;
}
在另一个类似问题的答案之后,我认为我需要使用验证分组,其中BarValidationGroup
是我用于Bar
类中字段的标记接口。
@SomeClassValidation
@GroupSequence({Foo.class, BarValidationGroup.class})
class Foo {
String someField;
@Valid
Bar someBar;
}
class Bar {
@NotEmpty
@Size(min=2, max=2, groups = BarValidationGroup.class)
String fieldA;
@NotEmpty
@Size(min=3, max=10, groups = BarValidationGroup.class)
String fieldB;
}
第一级验证 ( @SomeClassValidation
) 会触发,但Bar
不会触发。我究竟做错了什么?
解决方案
推荐阅读
- r - 从 R 中的街道地址字符串中删除单元号子句
- ios - 如何为协议扩展中的函数编写单元测试?
- python - music21 并行解析文件
- wpf - 窗口加载时WPF级联组合框未绑定
- r - 找到多个向量的组合以在 R 中逐元素填充更大的向量(根据它们的索引)
- assembly - PIC 如何知道键盘是键盘并且应该映射到 IRQ #1?
- java - 如何将图像添加到 JFrame
- css - css 变换下方的 div 可以与上方的 div 一起移动吗?
- c# - 如何在 ASP.Net Core 中创建特定 URL
- sqlite - Ionic+Cordova:如何从 chrome 浏览器预览 android 本地 SQLite 数据库?