Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- PAGING
- K8s
- kafka
- Spring JPA
- spring kafka
- mirror maker2
- Entity
- AWS
- git
- topic생성
- API
- producer
- offsetdatetime
- consumer
- transactionaleventlistener
- Spring Data JPA
- mysql
- QueryDSL
- cd
- ECS
- spring
- CodePipeline
- CI
- Kotlin
- JPA
- Kubernetes
- Streams
- bean
- centos7
- entity graph
Archives
- Today
- Total
Yebali
Spring JPA의 OSIV 본문
OSIV란?
Open Session In View의 줄임말. 하이버네이트에서 사용하는 단어이다.
JPA에서는 Open EntityManager In View가 정식 명칭이지만 관례상 OSIV라고 한다.
OSIV는 영속성 컨텍스트의 생존 범위를 지정하는 것이다.
OSIV ON!
'spring.jpa.open-in-view : true(기본값)'일 때는 커넥션 시작부터 API응답이 끝날 때까지 영속성 컨텍스트가 유지된다.
위의 설정에서는 Controller에서도 지연 로딩을 사용 할 수 있다.
영속성 컨텍스트는 기본적으로 DB 커넥션을 유지하기 때문에 이것 자체가 큰 장점이지만
DB커넥션을 오랫동안 사용하기 때문에 실시간 트래픽이 몰리면 커넥션이 말라버린다(부족해진다).
OSIV OFF!
'spring.jpa.open-in-view : false'일 때는, 트랜잭션이 종료될 때 영속성 컨텍스트를 닫고 DB커넥션도 반환한다. 따라서 커넥션 리소스를 낭비하지 않는다.
단, OSIV를 끄면 모든 지연로딩을 트랜잭션 안에서 처리해야 한다.
'Spring' 카테고리의 다른 글
Spring Data JPA를 이용한 CRUD (0) | 2021.10.11 |
---|---|
Spring Data JPA란? (0) | 2021.10.11 |
Spring을 이용한 API 개발 - Collection 조회 최적화 (0) | 2021.10.11 |
Spring을 이용한 API개발 - 조회 성능 최적화 (0) | 2021.10.11 |
Spring을 이용한 API개발 - 기본 (0) | 2021.10.11 |