복붙노트

[SPRING] Spring 부트 프로젝트에서 Hibernate가 LazyInitializationException을 던지지 않는다.

SPRING

Spring 부트 프로젝트에서 Hibernate가 LazyInitializationException을 던지지 않는다.

나는 Hibernate 5.0으로 Spring 부트 프로젝트를 수행한다. 불행하게도 Hibernate는 트랜잭션이 커밋 된 후에도 LazyInitializationException을 던지지 않고 게으른 초기화 된 객체를 읽는다. 트랜잭션 외부에서 LazyInitializationException을 활성화하려면 어떻게해야합니까?

현재 동작으로 인해 코드의 버그가 숨겨집니다.

해결법

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

    1.스프링 부트에는 spring.jpa.open-in-view 속성이 있으며 기본값은 true입니다. 이것은 전체 요청에 대해 트랜잭션을 유지하는 OpenEntityManagerInViewInterceptor를 등록합니다.

    스프링 부트에는 spring.jpa.open-in-view 속성이 있으며 기본값은 true입니다. 이것은 전체 요청에 대해 트랜잭션을 유지하는 OpenEntityManagerInViewInterceptor를 등록합니다.

    application.properties 파일에 다음을 추가하십시오.

    spring.jpa.open-in-view=false
    

    GitHub에 관한 토론

    스프링 부트 특성에 관한 문서

    희망이 도움이!

  2. from https://stackoverflow.com/questions/46877337/hibernate-is-not-throwing-lazyinitializationexception-in-spring-boot-project by cc-by-sa and MIT license