Dev/Spring

[Junit] id to load is required for loading 해결 방법

yo0oni 2023. 9. 21. 01:47

상품 주문 관련 테스트 코드를 돌리고 있는데 에러가 발생했다.

 

 

id to load is required for loading; nested exception is java.lang.IllegalArgumentException: id to load is required for loading
org.springframework.dao.InvalidDataAccessApiUsageException: id to load is required for loading; nested exception is java.lang.IllegalArgumentException

에러 문구를 읽어보니 id값에 문제가 있는 것 같았다.

 

 

에러가 발생한 위치를 확인해 보니 엔티티 매니저에서 아이템을 꺼내올 때 발생하는 문제였다.

에러 문구와 코드를 확인하니 아이템이 DB에 저장되지 않은 것 같았다.

 

그리고 그 예상이 맞았다.

 

 

아이템을 만들어주고 em.persist(book); 을 작성해야 하는데 빼먹었다...

 

 

이렇게 em.persist(book); 을 추가해 주면

 

 

테스트 코드가 잘 돌아가는 것을 확인할 수 있다.