복붙노트

[SPRING] Spring 데이터 jpa에서 save와 saveAndFlush의 차이점

SPRING

Spring 데이터 jpa에서 save와 saveAndFlush의 차이점

JpaRepository를 통해 CRUD 작업을 테스트하여 JPA 스프링 데이터를 배우려고합니다.

나는 saveAndFlush라는 두 가지 메소드를 발견했다. 나는이 둘의 차이점을 얻지 못한다. save를 호출하면 내 변경 사항이 데이터베이스에 저장되므로 saveAndFlush를 사용하게됩니다.

해결법

  1. ==============================

    1.saveAndFlush에서 변경 사항은이 명령에서 즉시 DB로 플러시됩니다. save를 사용하면 플러시 또는 커밋 명령이 실행될 때까지 메모리에 그대로 유지 될 수 있습니다.

    saveAndFlush에서 변경 사항은이 명령에서 즉시 DB로 플러시됩니다. save를 사용하면 플러시 또는 커밋 명령이 실행될 때까지 메모리에 그대로 유지 될 수 있습니다.

    그러나 트랜잭션의 변경 사항을 플러시하고 커밋하지 않더라도 변경 사항은이 트랜잭션의 커밋까지 외부 트랜잭션에 표시되지 않습니다.

    귀하의 경우에는 일종의 트랜잭션 메커니즘을 사용합니다. 모든 메커니즘이 정상적으로 작동하면 커밋 명령을 실행합니다.

  2. ==============================

    2.사용중인 최대 절전 모드 (기본값 : AUTO)에 따라 DB에 변경 사항을 즉시 기록 할 수도 있고 기록하지 않을 수도 있습니다. saveAndFlush를 호출하면 모델 상태와 DB의 동기화가 적용됩니다.

    사용중인 최대 절전 모드 (기본값 : AUTO)에 따라 DB에 변경 사항을 즉시 기록 할 수도 있고 기록하지 않을 수도 있습니다. saveAndFlush를 호출하면 모델 상태와 DB의 동기화가 적용됩니다.

    플러시 모드 AUTO를 사용하고 응용 프로그램을 사용하여 데이터를 처음 저장 한 다음 다시 선택하면 select ()가 먼저 플러시를 트리거하기 때문에 save ()와 saveAndFlush () 사이의 차이가 표시되지 않습니다. 문서를 참조하십시오.

  3. from https://stackoverflow.com/questions/21203875/difference-between-save-and-saveandflush-in-spring-data-jpa by cc-by-sa and MIT license