Control validation annotations order?

后端 未结 1 1842
广开言路
广开言路 2020-12-06 00:18

i have a field that have two validation annotations

@NotEmpty
@Length(min=3,max=100)
String firstName;

i am just curious to know how hibern

相关标签:
1条回答
  • 2020-12-06 00:58

    Use JSR-303 validation groups.

    If no groups are specified a constraint is part of the Default Bean Validation group (see: javax.validation.groups.Default).

    Create an interface to be your "Extended" (or whatever you want to call it) group:

    public interface Extended{}
    

    Now create an interface that will have the javax.validation.GroupSequence annotation.

    @GroupSequence({Default.class, Extended.class})
    public interface MySequence {}
    

    Set the validation groups on your constraints

    @NotEmpty // If no group is specified it is part of the default group
    @Length(min=3,max=100, groups = Extended.class)
    String firstName;
    

    Pass MySequence to your validator call.

    validator.validate(object, MySequence.class);
    

    As specified by your @GroupSequence the default constraints will be validated first and if no contraint violations are encountered it will move on to the extended group.

    0 讨论(0)
提交回复
热议问题