JPA
-
회원 조회 APIJPA/JPA 활용 2023. 7. 11. 18:15
회원 조회를 할 수 있는 컨트롤러이다. @RestController // api 설계할 때에는 RestController 사용 @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @GetMapping("/api/v1/members") // 조회는 GetMapping public List membersV1() { return memberService.findMembers(); } @GetMapping("/api/v2/members") public Result memberV2() { List findMembers = memberService.findMembers(); List ..
-
회원 수정 APIJPA/JPA 활용 2023. 7. 11. 18:14
(등록을 진행한 컨트롤러와 같은 컨트롤러에 등록 클래스 아래에 만들었음) @PutMapping을 이용한 회원 이름 수정 @RestController @RequiredArgsConstructor public class MemberApiController { @PutMapping("api/v2/members/{id}") public UpdateMemberResponse updateMemberV2(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request) { memberService.update(id, request.getName()); Member findMember = memberService.findOne(id); retur..
-
회원 등록 APIJPA/JPA 활용 2023. 7. 11. 18:14
HTML의 웹 페이지가 아닌 API에서의 JSON 형태로 데이터를 전달할 때의 컨트롤러를 설계한다. API 설계의 잘못된 예 @RestController // api 설계할 때에는 RestController 사용 @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; @PostMapping("api/v1/members") public CreateMemberResponse saveMemberV1(@RequestBody @Valid Member member) { Long id = memberService.join(member); return new CreateMemberRespon..
-
웹 계층 개발 - 상품 주문과 주문 내역JPA/JPA 활용 2023. 7. 11. 18:13
OrderController @Controller @RequiredArgsConstructor public class OrderController{ private final OrderService orderService; private final MemberService memberService; private final ItemService itemService; @GetMapping("/order") public String createForm(Model model) { List members = memberService.findMembers(); List items = itemService.findItems(); model.addAttribute("members", members); model.ad..
-
변경 감지와 병합(merge)JPA/JPA 활용 2023. 7. 11. 18:13
준영속 엔티티 @PostMapping("items/{itemId}/edit") public String updateItem(@PathVariable Long itemId, @ModelAttribute("form") BookForm form) { 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); return "r..
-
웹 계층 개발 - 상품 수정JPA/JPA 활용 2023. 7. 11. 18:12
상품을 등록하고 나중에 수정할 일이 있을 때 상품을 수정하는 기능이다. @GetMapping("items/{itemId}/edit") public String updateItemForm(@PathVariable("itemId") Long itemId, Model model) { Book item = (Book) itemService.findOne(itemId); // 상품은 책만 있다고 가정 BookForm form = new BookForm(); form.setId(item.getId()); form.setName(item.getName()); form.setPrice(item.getPrice()); form.setStockQuantity(item.getStockQuantity()); form.setA..
-
웹 계층 개발 - 상품 등록, 목록 조회JPA/JPA 활용 2023. 7. 11. 18:12
상품을 등록하고 조회할 수 있는 기능을 만들어 볼 것이다. (예제 단순화를 위해 상품은 책 하나) BookForm @Getter @Setter public class BookForm { private Long id; private String name; private int price; private int stockQuantity; private String author; private String isbn; } Item의 정보들을 닮을 수 있는 form인 BookForm이다. 상품 등록 ItemController @Controller @RequiredArgsConstructor public class ItemController { private final ItemService itemService; ..
-
웹 계층 개발 - 회원 등록, 목록 조회JPA/JPA 활용 2023. 7. 11. 18:11
위의 사진은 강의를 들으면서 개발할 기능들이다. 회원가입을 하고 상품 등록을 하고 주문을 할 수 있는 웹 애플리케이션을 만들 것이다. 이번 포스팅에서는 회원가입을 할 수 있는 회원가입 폼을 만들 것이다. html과 css 코드가 있긴 한데 스프링과 스프링부트, JPA를 공부하는 과정이기 때문에 프론트엔드 개발쪽은 직접 코드를 작성하지 않고 복사, 붙여넣기를 사용했다. MemberController @Controller @RequiredArgsConstructor public class MemberController { private final MemberService memberService; @GetMapping("/members/new") public String createForm(Model mod..