답변:
설정 saveAndFlush
하면이 명령에서 변경 사항이 즉시 DB로 플러시됩니다. 로 save
, 이것은 반드시 사실이 아니다, 그냥 메모리에 남아 있습니다, 때까지 flush
또는 commit
명령이 발급됩니다.
그러나 트랜잭션에서 변경 사항을 플러시하고 커밋하지 않더라도이 트랜잭션에서 커밋 될 때까지 변경 사항 은 외부 트랜잭션에 계속 표시 되지 않습니다 .
귀하의 경우에는 모든 종류의 트랜잭션 메커니즘을 사용하여 commit
모든 것이 잘 작동하면 명령을 발행 합니다.
사용중인 최대 절전 모드 ( AUTO
기본값)에 save
따라 변경 사항을 DB에 바로 쓰거나 쓰지 않을 수 있습니다. 전화 saveAndFlush
하면 모델 상태를 DB와 동기화해야합니다.
당신이 플러시 모드 AUTO를 사용하고 데이터를 다시 선택한 다음 저장 첫번째로 응용 프로그램을 사용하는 경우, 당신은 사이 bahvior의 차이를 볼 수 없습니다 save()
와 saveAndFlush()
플러시 먼저 선택 트리거 때문이다. 문서를 참조하십시오 .
save
엔티티이고 다시 동일한 엔티티 인 경우 save
두 번째 명령을 사용하면 예를 들어 복제에 대한 예외가 발생하지 않습니다.