OSIV

zhzkzhffk·2022년 5월 12일
0

OSIV

  • Open Session In View: 하이버네이트
  • Open EntityManager In View: JPA

OSIV: true

영속성 컨텍스트는 요청이 들어올 때 생성된다.

장점

최초 데이터베이스 커넥션 시작 시점부터 API 응답이 끝날 때 까지 영속성 컨텍스트와 데이터베이스 커넥션을 유지한다.

지연로딩이 가능

단점

너무 오랜시간동안 데이터베이스 커넥션 리소스를 사용 → 장애

예) 컨트롤러에서 외부 API를 호출하면 외부 API 대기 시간 만큼 커넥션 리소스를 반환하지 못하고, 유지해야 한다.

OSIV: false

장점

트랜잭션을 종료할 때 영속성 컨텍스트를 닫고, 데이터베이스 커넥션도 반환한다.
따라서 커넥션 리소스를 낭비하지 않는다.

단점

모든 지연로딩을 트랜잭션 안에서 처리해야 한다. 지연 로딩 코드를 트랜잭션 안으로 넣어야 하는 단점이 있다. 그리고 view template에서 지연로딩이 동작하지 않는다.

결론적으로 트랜잭션이 끝나기 전에 지연 로딩을 강제로 호출해 두어야 한다.

profile
Backend Developer

0개의 댓글