작성
·
230
0
답변 1
1
안녕하세요. 전병준님, 공식 서포터즈 OMG입니다.
코드 예시를 들면서 설명할게요.
@PostMapping("/add")
public String addItemV6(Item item, RedirectAttributes redirectAttributes) {
System.out.println("item Id = " + item.getId());
Item savedItem = itemRepository.save(item);
System.out.println("item Id = " + savedItem.getId());
System.out.println("savedItem Id = " + savedItem.getId());
redirectAttributes.addAttribute("itemId", savedItem.getId());
redirectAttributes.addAttribute("status", true);
return "redirect:/basic/items/{itemId}";
}
결과)
item Id = null
item Id = 3
savedItem Id = 3
데이터베이스에서 Id가 부여되기 전까지 해당 Item은 id가 없지만, db에 저장되는 시점에 Id가 부여되어 동일한 id(3)값이 세팅되어 사용에 문제 없을 것이라 생각하신 것 같습니다.
DB 연동 기술을 JPA를 사용하시게 된다면 가급적(좋은 코딩 습관) save의 반환 객체를 사용하시는 것을 권장드리며 이유는 아래 글을 참고해주세요.
https://minkukjo.github.io/framework/2020/07/05/Spring-130/
감사합니다.
역시 이유가 있었군요 .. 아직 JPA 를 학습하지 않아서 잘 이해는 가지 않지만 반환 객체를 사용하는 것이 좋은 습관이다 라는 것만큼은 얻어가겠습니다. 늦은 새벽에 답글 달아주셔서 감사합니다 !!