두개의 entity(ordergood, order_refund_detail)가 oneToMany 관계로 걸려있었다. 

엔드포인트를 테스트 코드에서 똑같이 재구현해서 테스트를 해봤는데, layzyInitialLazyInitializationException 이 발생을했다.

테스트 코드는 아래 그림과 같다.

 

원인은!

테스트코드는 시작시 영속성컨텍스트 안만들어준다..
지금의 스프링 OSIV에서는 필터단 부터 영속성컨텍스트가 시작되기때문에 그 하위 메소드들은 영속성 컨텍스트가 유지된다.
테스트코드에서는 필터,인터셉터를 지나치지 않았기때문에 영속성 컨텍스트를 안만들어 주는것이다. 후 삽질..


아래그림과같이 @Transactional을 테스트메소드에 추가해주면 해결 끝!



+ Recent posts