title: How to I get Spring-Data-MongoDB to validate my objects?
body: <p>I have a very simple Spring Boot application that uses Spring-Data-Mongodb</p>
  
  <p>All I want to do is set a JSR-303 validation rule that says the object I'm saving must have a username. I read that JSR-303 was added to spring-data-mongodb in version 1.1 so I assumed that when I save an object it's validated but this isn't the case.</p>
  
  <p>Does anyone have a simple example setup that shows how this works?</p>
  
  <p>My User pojo looks like</p>
  
  <pre><code>public class User {
  
      @Id
      private String id;
  
      @NotNull(message = "User Name is compulsory")
      private String userName;
      private String password;
  
      public User() {}
  
      public String getId() {
        return id;
      }
      public void setId(String id) {
        this.id = id;
      }
  
      public String getUserName() {
        return userName;
      }
      public void setUserName(String userName) {
        this.userName = userName;
      }
  
  
      public String getPassword() {
        return password;
      }
      public void setPassword(String password) {
        this.password = PasswordAuthService.hash(password);
      }
  }
  </code></pre>
  
  <p>I saw somewhere that validation only kicks in if you have a validator created in the context so I tried updating my Application class (which contains all the configuration, to look like</p>
  
  <pre><code>@Configuration
  @ComponentScan
  @EnableAutoConfiguration
  public class Application {
  
      @Bean
      public Validator getValidator() {
        LocalValidatorFactoryBean validator = new LocalValidatorFactoryBean();
        return validator;
      }
  
      public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
      }
  
  }
  </code></pre>