@RequestMapping("/register")
 public String register(
     @RequestParam(value = "productCode") String productCode,
     @AuthenticationPrincipal LoginUser user,
     Model model) {
   // Modelの情報を再取得してレジ画面を表示する
   Product product = productService.findStockProductByProductCode(productCode);
   Customer customer = customerService.findCustomerWithCreditByMail(user.getUsername());
   CashRegisterCustomerView customerView = createCustomerView(customer);
   model.addAttribute("product", product);
   model.addAttribute("customerView", customerView);
   return "register";
 }
 @RequestMapping("/detail")
 public String detail(@RequestParam(value = "productCode") String productCode, Model model) {
   Product product = productService.findStockProductByProductCode(productCode);
   // Cacheの取得を行う。cacheが存在しない場合はサービス経由でReviewを取得し、キャッシュに反映する。
   List<Review> reviews = reviewCache.get(productCode);
   if (reviews == null) {
     reviews = reviewService.findReviewByProductCode(productCode);
     // 結果が0件であった場合も空であった結果をCacheする.
     reviewCache.put(productCode, reviews);
   }
   model.addAttribute("product", product);
   model.addAttribute("reviews", createProductReviewView(reviews));
   return "detail";
 }