Cómo deshabilitar la validación de Hibernate en un proyecto Spring Boot

Tengo un proyecto de arranque de primavera que tiene un CrudRepository, una Entidad y un Controlador. Básicamente estoy tratando de persistir una entidad basada en los datos pasados al controlador.

Para hacer esto, estoy usandospring-boot-starter-jpa. Mi entidad está anotada con anotaciones JSR-303, que se verifican en el controladorantes de los datos se pasan al CrudRepository para persistencia.

Método del controlador:

@RequestMapping(value = "users", method = { RequestMethod.POST })
public SuccessfulResponse<User> addUser(@Valid @RequestBody User user, BindingResult validation) {
    if (validation.hasErrors()) {
        throw new ValidationException(validation);
    }
    User saved = this.users.save(user);
    return new SuccessfulResponse<User>(saved);
}

Entidad:

@Entity /* JPA */
public class User {

   @Id /* JPA */
   @Column(name="email_address", nullable=false, length=255) /* JPA */
   @UserUnique
   private String emailAddress;

}

La causa de mis problemas es elUserUnique anotación. Su validador se ve así:

public class UserUniqueValidator implements ConstraintValidator<UserUnique, String> {

   private UserRepository users;

   @Autowired
   public UserUniqueValidator(UserRepository users) {
       this.users = users;
   }

   @Override
   public void initialize(UserUnique annotation) {}

   @Override
   public boolean isValid(String value, ConstraintValidatorContext context) {
       return users.findOne(value) == null;
   }
}

Lo que parece estar sucediendo es que la validación se ejecuta dos veces. Una vez en el controlador a través de@Valid anotación, y una vez cuando Hibernate intenta persistir el objeto. Sin embargo, cuando Hibernate intenta persistir el objeto, arroja:

javax.validation.ValidationException: HV000064: Unable to instantiate ConstraintValidator: class test.UserUniqueValidator`

Esto parece ser porque no tiene en cuenta los resortes y no puede inyectar la dependencia en el constructor. Entonces, lo que quiero hacer es deshabilitar la validación de Hibernate por completo (ya que es redundante y ya está sucediendo en el controlador).

Parece que hay una propiedad llamadajavax.persistence.validation.mode que puedes configurar ennone. Sin embargo, no puedo por mi vida averiguar dónde configurarlo en una configuración basada en código.

Me doy cuenta de que hay preguntas comoInyección de dependencias JSR-303 e Hibernate pero todos usan la configuración xml y configuran manualmente partes de la capa de persistencia.

Lo que quiero hacer es "postconfigurar" las partes requeridas de la capa de persistencia que Spring Boot crea para mí porque si defino la mía, ya no estoy aprovechando la configuración automática de Spring Boot. ¿Alguien puede ayudarme a determinar si 1) esto es posible y 2) qué partes necesito configurar y cómo?

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta