작성자 없음
작성자 정보가 삭제된 글입니다.
작성
·
315
·
수정됨
0
영상에서 보면 플러시가 영속성 컨텍스트에 있는 1차 캐시 정보를 토대로 SQL 쓰기 지연 저장소 내용을 데이터베이스에 반영한다고 말씀해주셨습니다. 그리고 커밋되는 시점에 플러시가 자동으로 반영된다고도 말씀해주셨는데요,
그런데 아래 코드를 보면 강제로 플러시를 한번 호출하고 커밋을 반영해서 플러시를 결과적으로 두번 호출한 꼴이 될텐데 왜 데이터베이스에는 데이터가 두개가 아니라 한개만 반영되어 들어간건가요?
Member member = new Member(3L, "TEST_JPA");
em.persist(member);
em.flush();
tx.commit();
음 그럼 flush 의 역할이 호출될 때마다 insert 쿼리를 날려서 db에 반영시키는게 아니라
최초로 한번 insert 날리고나서 영속성 컨텍스트에 변경 내용이 있을 때마다 db에 반영시켜주는건가요??