JPA 기본 동작 과정
Entity Manager Factory 에서
Entity Manager 를 만들고
Transaction 안에서
Entity Manager를 이용해 객체와 테이블을 매핑, 수정, 삭제를 할 수 있다.
객체 수정시에 member.setId(1L); 을 해주고
em.persist(member); 를 해주지 않아도 수정해준다.!
JPA 내부 동작 방식
JPA에서 가장 중요한 2가지
1. 객체와 RDB 매핑 (ORM)
2. 영속성 컨텍스트 (내부 동작)
영속성 컨텍스트 : entity manager에 등록 (정확히는 아니지만 지금은 이렇게 이해해도 괜찮다고 한다.)
em.persist(entity); 를 해주면 바로 sql이 날아가는 것이 아닌 영속성 컨텍스트에 그냥 등록만 된다.
sql은 트랜잭션을 commit해줄때 날아간다.
객체 수정시에 em.persist()해주지 않아도 되는 이유
" 변경 감지 (dirty check) " 때문에.
변경감지 : 객체가 수정되면 영속성 컨텍스트에 등록된 객체의 스냅샷과 변경된 객체를 비교해서 달라지면 트랜잭션이 commit될때 알아서 update 쿼리를 보낸다.
'Web > JPA' 카테고리의 다른 글
EP6. 연관관계 매핑 (실전예제) (0) | 2021.02.06 |
---|---|
EP5. 연관관계 매핑 (0) | 2021.02.05 |
EP4. 요구사항 분석과 기본 매핑 (0) | 2021.02.04 |
EP3. 영속성 컨텍스트, 엔티티 매핑 (0) | 2021.02.03 |
EP1. JPA 개념과 개발환경 세팅 (0) | 2021.02.02 |