Spring에서 아래와 같은 오류 메세지를 만났다.
org.springframework.dao.InvalidDataAccessApiUsageException: id to load is required for loading; nested exception is java.lang.IllegalArgumentException: id to load is required for loading
loading 하기 위해서는 id가 필요한데 찾을 수 없다.
라는 오류 메세지이다.
차근차근 오류를 찾아갔다.
나의 경우에는 아래 상황에서 문제가 발생했다.
Item book = new Book();
book.setName("시골 JPA");
book.setPrice(10000);
book.setStockQuantity(10);
int orderCount = 2;
// when
Long orderId = orderService.order(member.getId(), book.getId(), orderCount);
member.getId()의 경우에는 문제가 없었지만,
book을 영속화시키지 않아서 발생한 문제였다.
실제로 book.getId()를 출력해봤더니, null이 나왔다.
이 문제는 아래와 같이 book 엔티티를 영속화함으로써 해결하였다.
Item book = new Book();
book.setName("시골 JPA");
book.setPrice(10000);
book.setStockQuantity(10);
em.persist(book);
'개발' 카테고리의 다른 글
유니코드와 variant form, variant selector (0) | 2022.10.10 |
---|---|
[Java] 인터페이스만 다중 상속이 가능한 이유? (0) | 2022.10.09 |
[Java] UnaryOperator, BinaryOperator 함수형 인터페이스 (0) | 2022.06.27 |
[Java] Supplier, Consumer, Function 함수형 인터페이스 (0) | 2022.06.27 |
[Java] Predicate 함수형 인터페이스 (0) | 2022.06.27 |