How can we ensure the individual strings inside a list are not null/blank or follow a specific pattern
@NotNull
List<String> emailIds;
I also want to add a pattern
@Pattern("\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b.")
but I can live without it.But I would definitely like to have a constraint which will check if any strings inside a list are null or blank. Also how would the Json schema look like
"ids": {
"description": "The ids associated with this.",
"type": "array",
"minItems": 1,
"items": {
"type": "string",
"required" :true }
}
"required" :true does not seem to do the job
You don’t have to use any wrapper class just to validate a list of strings. Just use
@EachPattern
constraint from validator-collection:And that’s all. Easy, right? See this SO answer for more information.
In my opinion, use a wrapper class for the object, and have your own verification on the methods:
Alternatively, just use a custom object for the list
You can create a simple wrapper class for the e-mail String:
Then mark the field
@Valid
in your existing object:The validator will then validate each object in the list.
Bean validation 2.0 (Hibernate Validator 6.0.1 and above) supports validating container elements by annotating type arguments of parameterized types. Example:
Or even (although a bit busy):
References: