Web/JPA

EP2. JPA 기본동작과정과 내부동작방식

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