복붙노트

[SPRING] Spring Boot에서이 spring.jpa.open-in-view = true 속성은 무엇입니까?

SPRING

Spring Boot에서이 spring.jpa.open-in-view = true 속성은 무엇입니까?

Spring 부트 문서에서 JPA 설정 spring.jpa.open-in-view = true에 대한이 속성을 보았습니다. 그런데 사실로 설정되었으므로 기본값이됩니까?

그것은 정말로 무엇을 의미합니까? 이 행동에 대한 설명을 찾지 못했습니다.

EntityManagerFactory 대신 Hibernate SessionFactory를 사용해야 할까? 그렇다면 어떻게 EntityManagerFactory를 설정할 수 있습니까?

어떤 도움을 주시면 감사하겠습니다.

감사!

해결법

  1. ==============================

    1.이 속성은 EntityManager를 현재 스레드에 등록하는 OpenEntityManagerInViewInterceptor를 등록하므로 웹 요청이 완료 될 때까지 동일한 EntityManager를 갖습니다. 그것은 Hibernate SessionFactory와는 아무런 관련이 없다.

    이 속성은 EntityManager를 현재 스레드에 등록하는 OpenEntityManagerInViewInterceptor를 등록하므로 웹 요청이 완료 될 때까지 동일한 EntityManager를 갖습니다. 그것은 Hibernate SessionFactory와는 아무런 관련이 없다.

  2. ==============================

    2.아쉽게도 OSIV (View in Open Session)는 Spring Boot에서 기본적으로 활성화되어 있으며, OSIV는 성능 및 확장 성 측면에서 볼 때 실제로 좋지 않습니다.

    아쉽게도 OSIV (View in Open Session)는 Spring Boot에서 기본적으로 활성화되어 있으며, OSIV는 성능 및 확장 성 측면에서 볼 때 실제로 좋지 않습니다.

    따라서 application.properties 구성 파일에 다음 항목이 있는지 확인하십시오.

    spring.jpa.open-in-view=false
    

    이렇게하면 LazyInitializationException을 올바르게 처리 할 수 ​​있도록 OSIV가 비활성화됩니다.

    버전 2.0부터 스프링 부트는 기본적으로 OSIV가 활성화되어있을 때 경고를 발행하므로 프로덕션 시스템에 영향을주기 훨씬 전에이 문제를 발견 할 수 있습니다.

  3. from https://stackoverflow.com/questions/30549489/what-is-this-spring-jpa-open-in-view-true-property-in-spring-boot by cc-by-sa and MIT license