OSIV와 영속성 컨텍스트 범위

무지성개발자·2024년 3월 11일
0

영속성 컨텍스트의 범위

영속성 컨텍스트는 트랜젝션이 시작 할 때 만들어지고 트랜젝션이 끝니면 사라진다. 때문에 Spring에서 JPA를 사용할 때 @Transactional 어노테이션을 사용하여 영속성 컨텍스트를 사용해 db에 접근하도록 한다.

영속성 컨텍스트가 살아 있다 = db커넥션이 유지되고 있다 = 리소스를 사용한다 라고 보면된다.

OSIV

OSIV 전략은 트랜잭션 시작처럼 최초 데이터베이스 커넥션 시작 시점부터 API 응답이 끝날 때 까지 영속성 컨텍스트
와 데이터베이스 커넥션을 유지하게 되며 트랜잭션의 범위를 벗어난 Controller레이어, VIEW에서도 지연로딩과 같은 JPA 기능을 사용할 수 있도록 해준다.

하지만 OSIV를 키게 되면 트랜젝션을 넘어선 범위에서도 DB커넥션을 유지하게 되니 당연히 리소스를 계속 점유하게 되니 잘 생각해보고 사용해야한다.

spring.jpa.open-in-view : true(기본값)

profile
no-intelli 개발자 입니다. 그래도 intellij는 씁니다.

0개의 댓글