개요

Spring JPA에는 open-in-view 를 true / false 로 설정할 수 있습니다.

spring.jpa.open-in-view=true // true : default

오늘은 이 기능이 무엇을 하는지 간단하게 알아보도록 합시다.

 

 

 

 

OSIV

open-in-view(OSIV) 는 영속성 컨텍스트가 데이터베이스 커넥션을 언제 돌려주는지 설정하는 것입니다.

OSIV의 기본전략은 트랜잭션 시작처럼 최초 데이터베이스 커넥션 시작 시점부터 API 응답이 끝날 까지 영속성 컨텍스트

데이터베이스 커넥션을 유지하는 것입니다. 즉, 트랜잭션이 종료되어도 데이터베이스 커넥션을 유지하는 것인데요.

이 전략은 Controller에서 지연로딩을 통해 데이터를 받아올 수 있다는 장점이 있습니다.

다만, 이 기본전략은 데이터베이스 커넥션을 필요 이상으로 오래 사용하고, 오래 사용하기 때문에 트래픽이 많은 어플리케이션에서는 커넥션이 모자라 문제를 일으킬 수 있다는 것입니다.

 

 

spring.jpa.open-in-view=false

따라서 OSIV를 false로 하여 커넥션 반환시점을 트랜잭션 종료시점과 맞추어 사용하는 것이 조금더 나을 수 있습니다.

'FrameWork > JPA' 카테고리의 다른 글

[JPA] default_batch_fetch_size  (0) 2024.11.08
JPA 스키마 자동 생성  (0) 2023.11.17

+ Recent posts