From 854e0678ecfaf2ea79d84b2af62fe9984641b5ff Mon Sep 17 00:00:00 2001 From: kim Date: Mon, 25 Jan 2021 20:10:01 +0900 Subject: [PATCH] jpashop : update item - dirty checking & merge --- .../jpashop/controller/ItemController.java | 20 ++++++++++--------- .../example/jpashop/service/ItemService.java | 12 +++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/jpashop/src/main/java/com/example/jpashop/controller/ItemController.java b/jpashop/src/main/java/com/example/jpashop/controller/ItemController.java index 745bbacb..29d70cb4 100644 --- a/jpashop/src/main/java/com/example/jpashop/controller/ItemController.java +++ b/jpashop/src/main/java/com/example/jpashop/controller/ItemController.java @@ -62,17 +62,19 @@ public class ItemController { } @PostMapping("/items/{itemId}/edit") - public String updateItemForm(BookForm form, @PathVariable String itemId) { + public String updateItemForm(BookForm form, @PathVariable Long itemId) { - Book book = new Book(); - book.setId(form.getId()); - book.setName(form.getName()); - book.setPrice(form.getPrice()); - book.setStockQuantity(form.getStockQuantity()); - book.setAuthor(form.getAuthor()); - book.setIsbn(form.getIsbn()); +// Book book = new Book(); +// book.setId(form.getId()); +// book.setName(form.getName()); +// book.setPrice(form.getPrice()); +// book.setStockQuantity(form.getStockQuantity()); +// book.setAuthor(form.getAuthor()); +// book.setIsbn(form.getIsbn()); +// itemService.saveItem(book); + + itemService.updateItem(itemId, form); - itemService.saveItem(book); return "redirect:/items"; } } \ No newline at end of file diff --git a/jpashop/src/main/java/com/example/jpashop/service/ItemService.java b/jpashop/src/main/java/com/example/jpashop/service/ItemService.java index 155018cb..f1254779 100644 --- a/jpashop/src/main/java/com/example/jpashop/service/ItemService.java +++ b/jpashop/src/main/java/com/example/jpashop/service/ItemService.java @@ -1,5 +1,7 @@ package com.example.jpashop.service; +import com.example.jpashop.controller.BookForm; +import com.example.jpashop.domain.item.Book; import com.example.jpashop.domain.item.Item; import com.example.jpashop.repository.ItemRepository; import lombok.RequiredArgsConstructor; @@ -20,6 +22,16 @@ public class ItemService { itemRepository.save(item); } + @Transactional + public void updateItem(Long itemId, BookForm bookParam) { + Book findItem = (Book) itemRepository.findOne(itemId); + findItem.setPrice(bookParam.getPrice()); + findItem.setName(bookParam.getName()); + findItem.setStockQuantity(bookParam.getStockQuantity()); + findItem.setAuthor(bookParam.getAuthor()); + findItem.setIsbn(bookParam.getIsbn()); + } + public List findItem() { return itemRepository.findAll(); }