Is it possible to relax
validation using jakarta validation groups
?
For example, for default configuration I have the following validations:
class Person {
@NotNull
private String name;
@NotNull
private String email;
}
Call without specifying validation group works as expected:
validator.validate(person) //validates name AND email
But for this case:
validator.validate(person, EmailNullable.class) //validates name ONLY
... I want only name to be validated, email
could be nullable.
Is it possible somehow define EmailNullable
validation group to relax default validations and suppress NotNull
for email
field?
Can you define validation groups to selectively apply constraints to fields based on the validation context? By specifying the groups attribute in the @NotNull annotation, you can ensure constraints are applied only for the specified groups.
Define Interfaces:
public interface DefaultValidationGroup {}
public interface EmailNullableValidationGroup {}
Apply Validation Groups:
public class Person {
@NotNull(groups = {DefaultValidationGroup.class, EmailNullableValidationGroup.class})
private String name;
@NotNull(groups = DefaultValidationGroup.class)
private String email;
}
Validate:
validator.validate(person, DefaultValidationGroup.class);
validator.validate(person, EmailNullableValidationGroup.class);
Here are some useful references: