두개의 entity(ordergood, order_refund_detail)가 oneToMany 관계로 걸려있었다.
엔드포인트를 테스트 코드에서 똑같이 재구현해서 테스트를 해봤는데, layzyInitialLazyInitializationException 이 발생을했다.
테스트 코드는 아래 그림과 같다.

원인은!
테스트코드는 시작시 영속성컨텍스트 안만들어준다..
지금의 스프링 OSIV에서는 필터단 부터 영속성컨텍스트가 시작되기때문에 그 하위 메소드들은 영속성 컨텍스트가 유지된다.
테스트코드에서는 필터,인터셉터를 지나치지 않았기때문에 영속성 컨텍스트를 안만들어 주는것이다. 후 삽질..
아래그림과같이 @Transactional을 테스트메소드에 추가해주면 해결 끝!

'개발 > 문제해결' 카테고리의 다른 글
| immutable하고 빈이 아닌 맴버필드 DI하기(feat. @value) (0) | 2020.07.24 |
|---|---|
| Transaction 제대로 걸리지 않았던 문제 (0) | 2020.06.23 |