Java
회원수정 api 개발 // 500 internal server error 해결방법
1. 500 internal server error 해결방법 class 를 static class로 설정하면 된다... 인텔리제이의 도움말을 잘 읽어보도록 2. 추가코드 - MemberApiController //수정은 put매핑 @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); return new Update..
회원등록 API // api 개발시 dto를 사용해야하는 이유
1. 전체코드 package jpabook.jpashop.api; import javax.validation.Valid; import javax.validation.constraints.NotEmpty; import jpabook.jpashop.domain.Member; import jpabook.jpashop.service.MemberService; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springfram..
주문 목록 검색, 취소 // @ModelAttribute, @PathVariable / 실전편-1 끝!
* orderController - Get매핑 @GetMapping(value = "/orders") public String orderList(@ModelAttribute("orderSearch") OrderSearch orderSearch, Model model){ List orders = orderService.findOrders(orderSearch); model.addAttribute("orders",orders); //orders를 들고 html로 가라 //model.addAttribute("orderSearch",orderSearch); //@ModelATtribute => 자동으로 모델에 담아줌. 받기도가능 return "order/orderList"; } *HTML 주문상태 option ..
상품주문 // 컨트롤러 : 인자넘기기만 하라 / 처리는 서비스계층에서
* OrderController package jpabook.jpashop.controller; import jpabook.jpashop.domain.Member; import jpabook.jpashop.domain.OrderService; import jpabook.jpashop.domain.item.Item; import jpabook.jpashop.repository.OrderSearch; import jpabook.jpashop.service.ItemService; import jpabook.jpashop.service.MemberService; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Control..
변경감지와 병합(merge) // 엔티티변경시 변경감지를 사용하라 , dto언제써야하나, 추적가능한 설계
* 변경감지 == dirty checking set이후 DB에 따로 작업을 안해도, 스프링JPA가 자동으로 DB에 반영해준다 @RunWith(SpringRunner.class) @SpringBootTest public class ItemUpdateTest { @Autowired EntityManager em; @Test public void updateTest() throws Exception{ Book book = em.find(Book.class, 1L); //트랜젝션안에서 book.setName("asdfghf"); //set이후 트랜잭션 커밋하면 스프링이 자동으로 DB에 반영해줌 == 변경감지 } } 예시2) Order-Cancel public void cancel(){ if(delivery.ge..