프로젝트에서 Spring 데이터 및 Bean 유효성 검사와 함께 Spring Boot (1.3.3.RELEASE)를 사용하고 있으며 예상치 못한 (적어도 저에게) 동작을 발견했습니다. User 엔티티와 UserRepository (JpaRepository를 확장 한 인터페이스)가 있습니다. 나는이 같은 전화 걸 때 : 새와 잘못된 사용자에스프링 데이터 JPA 저장 방법이 왜 즉시 검증되지 않았습니까?
userRepository.save(user);
logger.info("User saved with id", user.getId());
를 로거가 호출 사용자가 ID를받은 것을 알 수있다. 아무 것도 지속되지 않고 로깅 후 끝에 ConstraintViolationException이 throw됩니다.
하지만로 변경하는 경우 :
userRepository.saveAndFlush(user);
logger.info("User saved with id", user.getId());
ConstraintViolationException 바로 발생하고 로거 라인에 도달하지 없구요.
로거 전에 예외가 발생하는 두 번째 동작은 userRepository.save() 메서드를 호출 할 때 발생해야하는 것이라고 생각합니다.
무엇이 잘못 되었나요? 내 프로젝트에 대해 뭔가? 아니면 콩 유효성 검사가 작동하는 방법에 대한 내 이해?