Search code examples
javarestspring-bootbean-validationspring-restcontroller

Springboot request object validation


I have a request object

public class OrderRequest {

    private List<Details> detailsList;

 }

 public class Details{
    Private String id;

    private List<Detail> detailList;

 }


  public class Detail{

    @NotNull(message = "Please provide the inventory name")
    Private String inventoryName;

    Private String inventoryId;

    Private String inventoryLoc;

 }

and i want to validate each request object Detail for not null or not empty.

javax.validation.constraints.NotNull

@valid annotation is added for the controller class

@Valid @RequestBody final OrderRequest orderRequest

but it doesn't seem to work. what am i missing here?


Solution

  • You should also annotate your OrderRequest as follows (in case of Bean Validation 2.0):

    public class OrderRequest {
        private List<@Valid Details> detailsList;
    }
    

    Or if you are using an older Bean Validation 1.1 you should place the `@Valid before the list:

    public class OrderRequest {
        private @Valid List<Details> detailsList;
    }