Dot Programming/JPA
2022. 4. 7.
[Spring] 스프링 JPA의 OSIV 전략 - 트랜잭션, 영속성 컨텍스트 생명주기
OSIV(Open Session In View) OSIV는 영속성 컨텍스트를 뷰까지 열어둔다는 뜻이다. 영속성 컨텍스트가 살아있으면 엔티티는 영속 상태로 유지된다. 따라서 뷰에서도 지연 로딩을 사용할 수 있다. 참고로 OSIV는 Hibernate 용어다. JPA는 OEIV(Open EntityManager In View)라 하지만 관례상 모두 OSIV로 부른다. 과거 OSIV: 요청 당 트랜잭션 OSIV의 핵심은 뷰에서도 지연 로딩이 가능하도록 하는 것이다. 가장 단순한 구현 방법은 클라이언트의 요청이 들어오자마자 서블릿 필터나 스프링 인터셉터에서 트랜잭션을 시작하고 요청이 끝날 때 트랜잭션도 끝나는 것이다. 이것을 요청 당 트랜 잭션방식의 OSIV라 한다. 요청이 들어오면 서블릿 필터나 스프링 인터셉터..