Open Session In View
개인적인 생각을 먼저 말하면
false 로 사용하는게 좋을것 같다. false -> true 변경은 크게 이슈가 없지만, true -> false 변경시 프로젝트에서 어떤 사이드 이펙트가 발생할지 모른다.
이전에 프로젝트를 진행했을때 비동기를 사용하려고 했을때 Apparent connection leak detected이 발생했다. 이때문에 true -> false 로 변경하려고 했을때 LazyInitializationException이 발생
LazyInitializationException 원인은 lazy loding을 사용한 entity의 컬럼을 트랜젝션 밖에서 사용하고 있어서 발생
osiv false 로 사용하면 명시적으로 트랜젝션이 걸린 부분만 DB 커넥션을 유지하는데 이때 트랜젝션 밖에서 lazy 로딩한 entity를 사용하면 이미 커넥션을 끊기 상태에서 DB 요청을해서 오류 발생
entity가 트랜젝션 밖에서 사용한는 것 부터 잘 못되었다.
모델링 후 사용하는게 정상적이다.
osiv off 설정 후 entity를 밖에서 사용하는 코드 모든 부분 수정