Spring-open-in-view 속성

박상준·2024년 4월 16일
0

JPA

목록 보기
1/2

  • 기본적으로 활성화로 되어 있음.
  • Open Session in View 패턴을 활성화하여 HTTP 요청이 처리되는 동안 JPA / Hibernate 세션을 열어 두는 역할을 한다.
  • 이로 인하여 뷰 렌더링 중에도 DB 쿼리가 수행될 수 있다.
  • 지연 로딩으로 설정된 엔티티를 뷰에서 접근할 때 유용하게 사용될 수 있지만, 별도의 뷰가 없는 백엔드 서버에서는 성능 저하나 예기치 않은 DB 쿼리 실행이 될 수 있다고 한다.

해결

  • spring.jpa.open-in-view = false 설정으로 해당 문제 해결

효과

  • 지연 로딩 문제
    • 해당 속성을 활성화시
    • 세션을 요청이 끝날 때 까지 열어둔다.
    • 컨트롤러나 서비스 계층에서 데이터에 접근한 이후에도 지연 로딩이 가능해진다.
  • 트랜잭션의 경계 명확
    • spring.jpa.open-in-view=false 설정으로 트랜잭션의 경계가 명확해진다
    • 비즈니스 로직이 실행되는 동안만 DB 세션이 열리게 됨.
profile
이전 블로그 : https://oth3410.tistory.com/

0개의 댓글