JPA 동작과정
- jpa는 애플리케이션과 jdbc사이에서 동작하여 개발자가 jpa를 사용하면, jpa내부에서 jdbc api를 사용하여 sql을 호출, DB와 통신한다.
jpa를 쓰는 이유
- db중심의 설계 단점을 보완하고, 효율적인 개발 방법론에 대한 고민
- 객체를 데이터 전달 목적으로만 사용하는 것이 아닌, 객체지향의 장점을 살리고 객체와 테이블을 매핑시켜주는 ORM이 주목받음
장단점
- 장점: 객체중심적 개발 가능, 생산성 유지보수 용이, 실시간 처리용 쿼리에 용이
- 단점: 업무 비즈니스가 복잡할 경우, 사용하기 어려움, 대용량 데이터 환경에서 튜닝어려움
영속성 컨텍스트
- jpa를 이해하는 데 가장 중요한 용어
- 엔티티를 영구저장하는 환경이라는 뜻
- EntityManager.persist(entity)
- 엔티티매니저를 통해 접근
- 엔티티매니저와 영속성 컨텍스트(PersistenceContext)가 N:1관계
플러시(flush)
- 영속성 컨텍스트의 변경내용을 데이터베이스에 반영
- sql 쿼리를 데이터베이스에 전송
- entitymanager.flush() -> 직접 호출
준영속