members = memberService.findMembers();
List- items = itemService.findItems();
model.addAttribute("members", members);
model.addAttribute("items", items);
return "order/orderForm";
}
@PostMapping("/order")
public String order(@RequestParam("memberId") Long memberId,
@RequestParam("itemId") Long itemId,
@RequestParam("count") int count) {
Long orderId = orderService.order(memberId, itemId, count);
return "redirect:/orders";
}
}">
members = memberService.findMembers();
List
- items = itemService.findItems();
model.addAttribute("members", members);
model.addAttribute("items", items);
return "order/orderForm";
}
@PostMapping("/order")
public String order(@RequestParam("memberId") Long memberId,
@RequestParam("itemId") Long itemId,
@RequestParam("count") int count) {
Long orderId = orderService.order(memberId, itemId, count);
return "redirect:/orders";
}
}">
members = memberService.findMembers();
List
- items = itemService.findItems();
model.addAttribute("members", members);
model.addAttribute("items", items);
return "order/orderForm";
}
@PostMapping("/order")
public String order(@RequestParam("memberId") Long memberId,
@RequestParam("itemId") Long itemId,
@RequestParam("count") int count) {
Long orderId = orderService.order(memberId, itemId, count);
return "redirect:/orders";
}
}">
@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<Member> members = memberService.findMembers();
List<Item> items = itemService.findItems();
model.addAttribute("members", members);
model.addAttribute("items", items);
return "order/orderForm";
}
@PostMapping("/order")
public String order(@RequestParam("memberId") Long memberId,
@RequestParam("itemId") Long itemId,
@RequestParam("count") int count) {
Long orderId = orderService.order(memberId, itemId, count);
return "redirect:/orders";
}
}
- 주로 컨트롤러에서 식별자만 넘기고 비즈니스 서비스에서 엔티티를 찾고 하는 것부터 시작한다.
- 컨트롤러에서 엔티티를 찾지 말자
- 트랜잭션 안에서 영속 상태를 만들고 문제를 해결하자
- 컨트롤러에서 엔티티를 넘기면 트랜잭션이 없기 때문에 서비스에선 준영속 상태가 된다.