11.엔티티 삽입
앞서 Java 코드를 통해 생성한 인스턴스를 엔티티 매니저가 제공하는 persist(Entity)를 통해 영속성 컨텍스트에서 추적, 관리하는 Managed 상태가 되었음

persist(Entity)의 메서드로 전달된 book 인스턴스는 tx.commit()을 통해 트랜잭션이 커밋될 때 다음과 같이 INSERT 쿼리가 생성되어 데이터베이스에 저장하는 작업이 수행됨
SQL
INSERT INTO book values ...2. tx.commit()이 호출되었을 경우
EntityTransaction 객체를 통해 tx.commit()을 수행할 경우 commit() 수행 직전에 내부적으로 flush()가 호출됨
💡
Tip
flush()
영속성 컨텍스트의 캐시에 보관되어있는 엔티티 참조 정보와 DB 내 레코드를 비교한 후,
영속성 컨텍스트 - 데이터베이스 테이블 간 동기화(Synchronize)를 수행하는 메서드
결과적으로 DB에는 해당 레코드가 존재하지 않기 때문에 INSERT Query가 수행됨
Sample.java
tx.commit(); // 내부적으로 flush()가 호출됨
Last updated on