I’m working on a Spring Boot project and I’m trying to validate some fields from an object.
Actually I have an API which accepts parameters. I know I can use @Valid
into API declaration like this:
@GetMapping(value="/...") Object myMethod(@RequestParam(value="name") @Size(min = 3) String name)
But I don’t want to validate there. I have a “filter” object to validate the values, so I expect something like:
Controller file
@override public Object myMethod(String name){ @Valid Filter filter = new Filter(name) }
And filter is not an entity, only a class with validations tags:
public class Filter @Size(min = 3) private String name; public Filter(name){ this.name = name; } // getters and setters
So the idea is to use @Valid
creating the object and throws an exception if any validation is not successfull. Is this possible?
I have found multiple solutions to validate query params, body requests and so on, but not about validate a single object created using new
.
Advertisement
Answer
From what I can see that’s not possible. The closest solution to your case would be to manually validate the entity with:
@Autowired private Validator validator;
and then validating your object like so:
@Override public Object myMethod(String name){ Filter filter = new Filter(name); validator.validate(filter); }