영속성컨텍스트 2

영속성 관리 (2)

플러시 플러시는 영속성 컨텍스트의 변경 내용을 데이터베이스에 반영한다. 변경 감지가 동작해서 영속성 컨텍스트에 있는 모든 엔티티를 스냅샷과 비교해서 수정된 엔티티를 찾는다. 수정된 엔티티는 수정 쿼리를 만들어 쓰기 지연 SQL 저장소에 등록한다. 쓰기 지연 SQL 저장소의 쿼리를 데이터베이스에 전송한다.(등록, 수정, 삭제 쿼리) ​ 영속성 컨텍스트를 플러시 하는 방법은 3가지다. em.flush() 를 직접 호출한다. 트랜잭션 커밋 시 플러시가 자동 호출된다. JPQL 쿼리 실행 시 플러시가 자동 호출된다. em.persist(memberA); em.persist(memberB); em.persist(memberC); //중간에 JPQL 실행 query = em.createQuery("select m ..

JPA 2023.04.27

영속성 관리 (1)

JPA가 제공하는 기능 ·엔티티와 테이블을 매핑하는 설계 부분 ·매핑한 엔티티를 실제 사용하는 부분 ​ 이번 글에서는 매핑한 엔티티를 엔티티 매니저를 통해 어떻게 사용하는지 알아보겠다. ​ 엔티티매니저는 엔티티를 저장하고, 수정하고, 삭제하고, 조회하는 등 엔티티와 관련된 모든 일을 한다. 이름 그대로 엔티티를 관리하는 관리자다. 개발자 입장에서 엔티티 매니저는 엔티티를 저장하는 가상의 데이터베이스로 생각하면 된다. 참고로 내용 중에 구현과 관련된 부분들은 하이버네이트를 기준으로 이야기할 것이고 다른 JPA구현체도 크게 다르지는 않을 것이다. ​ 엔티티 매니저 팩토리와 엔티티 매니저 데이터베이스를 하나만 사용하는 애플리케이션은 일반적으로 EntityManagerFactory를 하나만 생성한다. ​ Ent..

JPA 2023.04.27