웹프로그래밍/오류 노트

스프링부트-jpa] object references an unsaved transient instance

Gamcho 2019. 6. 28. 09:45

주요키 엔티티가 아직 DB에 저장되지 않았는데 이 주요키를 참조하는 엔티티를 저장하려고 해서 발생하는 에러이다.

 

먼저 주요키 엔티티를 DB에 저장하고 id 칼럼 값을 가져와서 참조하려는 엔티티에 할당 후 DB에 저장한다.


※잘못된 코드

item.setItemIndex(new ItemIndexes(token));
item.setItem_title(element.text());
item.setItem_link(element.attr("abs:href"));



※수정 후

Items i = itemRepository.save(items.get(0).toItemEntity());
long item_id = i.getItem_id();

itemIndexRepository.save(ItemIndexes.builder().item(new Items(item_id)).tokens(items.get(0).getTokens()).build());