Java ORM 표준 JPA 프로그래밍
2회독 정리
OSIV(Open Session In View)
영속성컨텍스트 생존범위
off
영속상태 범위 => 트랜잭션 범위(서비스->레포지토리)
트랜잭션 종료할때, 영속성 컨텍스트를 닫고, 데이터베이스 커넥션도 반환
커넥션 리소스낭비안됨
디폴트 on
API응답이 끝날때 까지 영속성 컨텍스트와 데이터베이스 커넥션이 유지됨
실시간 트래픽에서는 커넥션풀 낭비가 심해서 비효
영속성 컨텍스트 이점
1차캐시
em.persist(a) : 영속상태
em.find(a) -> 영속성 컨텍스트에서 조회 (1차캐시)
트랜잭션을 지원하는 쓰기지연
persist(a), persist(b) ...
tx.commit() -> 트랜잭션 커밋 순간에 SQL 실행
더티체킹 (변경감지)
조회된 영속 엔티티 -> 수정 -> update 문이 없어도 데이터 수정
지연로딩
Last updated
Was this helpful?