
스프링부트의 트랜잭션, 스프링 jpa의 osiv전략
·
백/spring
전통적인 스프링의 트랜잭션. 여기엔 문제점이 있음! OSIV(Open Session In View) OSIV는 영속성 컨텍스트를 뷰까지 열어둔다는 뜻이다. 위의 경우 LAZY전략으로 조회시 롯데팀에 대한 정보가 조회되지 않는다. 이유는 서비스에서 영속성 컨텍스트가 종료되었기 때문이다. 이와 같은 경우를 해결하기 위해 영속성 컨텍스트 종료를 컨트롤러에서 종료하게 하여, 컨트롤러에서도 롯데팀에 대해서 조회 할 수 있게 한다. 단, 이때 프록시를 통해 정보를 조회(s) 할 수는 있으나, I, U, D와 같은 기능은 할 수 없다.(트랜잭션이 종료되었기 때문에) 정리해서 다시 그리면 아래와 같음 - 세션의 시작(사용자가 request한 시점)은 서블릿이 시작되는 시점 부터~ (세션은 영속성 컨텍스트를 포함) - ..