javax.validation内部@Valid bean在外部类级别验证之后进行验证

时间:2018-10-23 08:43:24

标签: javax.validation

我有2个课程:

@Data
public static class Inner {
    @NotNull
    private String innerField;
}

@Data
@OuterClasslevelConstraints
public static class Outer {
    @NotNull
    private String outerField;

    @Valid
    private Inner inner;
}

@Data是lombok注释,@NotNull@Valid是javax.validation。

@OuterClasslevelConstraints是由我的自定义验证程序验证的自定义类级别约束注释。它使用内部和外部类中的字段进行验证。

目标是验证内部和外部的每个字段,并且只有在一切正常的情况下,才运行类级验证器。

如果outerFieldnull,则类级验证程序未运行-这就是我想要的。

但是,如果innerField为空(并且outerField不是null),则类级验证器将运行并失败,因为我的类级验证器实际上是依靠{{ 1}}不是innerField

我尝试使用null定义验证组序列,但是没有运气-无法将显式组设置为@GroupSequence,并且总是在外部类级别验证之后运行。

也许这种情况太复杂了,无法用javax.validation实现,我应该在其他地方进行类级验证吗?

0 个答案:

没有答案