NumberFormatExeption для Spring MVC параметра строкового типа

Есть @Entity class Order. Когда я пытаюсь сделать myRepository.findAll() получаю NumberFormatExeption

Вот метод из контролера

@PostMapping("/order")
@PreAuthorize("isAuthenticated()")
public String createOrder(@RequestParam(required = false) String courier,
                          @RequestParam(required = false) String postOffice,
                          @RequestParam(required = false) String cashless,
                          @RequestParam(required = false) String onDelivery,
                          @RequestParam(required = false) String cod,
                          @RequestParam(required = false) String address,
                          @RequestParam(required = false) Integer postOfficeId,
                          @RequestParam(name = "productId", required = false) Integer[] ids,
                          @RequestParam(name = "productSize", required = false) Integer[] sizes,
                          @AuthenticationPrincipal User user,
                          Model model) {
    int orderNum = getUniqueOrderNumber(10000, 99999);

    Order order = new Order();

    order.setUser(user);
    order.setStatus(1);

    order.setOrderNumber(orderNum);

    if (courier != null) {
        order.setDeliveryType(1);

        if (address != null) order.setAddress(address);
        else order.setAddress("Адресс не указан");

        if (cashless != null) order.setPayType(1);
        else if (onDelivery != null) order.setPayType(2);
    } else if (postOffice != null) {
        order.setDeliveryType(1);

        order.setPostOfficeId(postOfficeId);

        if (cashless != null) order.setPayType(1);
        else if (cod != null) order.setPayType(3);
    }

    List<Product> products = new ArrayList<>();
    int price = 0;

    for (Product product : user.getUniqueCard()) {
        for (int i = 0; i < ids.length; i++) {
            if (product.getId() == ids[i]) {
                price += product.getPrice() * sizes[i];

                for (int j = 0; j < sizes[i]; j++) {
                    products.add(product);
                }

                break;
            }
        }
    }

    order.setProducts(products);
    order.setPrice(price);

    orderRepo.save(order);

    userService.removeAllFromCard(user);
    userService.addOrder(user, order);

    try {
        String subject = "Order created";
        String message = String.format(
                "Order %s created", orderNum
        );

        mailSender.send(user.getEmail(), subject, message);
    } catch (MessagingException e) {
        model.addAttribute("message", "Не удалось отправить письмо на почту. Номер заказа: " + orderNum);
        return mainController.main(model);
    }

    return "redirect:/";
}

private int getUniqueOrderNumber(int min, int max) {
    Iterable<Order> orders = orderRepo.findAll();

    int num = 10000;
    boolean isUnique = false;
    while (!isUnique) {
        isUnique = true;

        num = min + (int)(Math.random() * ((max - min) + 1));

        for(Order order : orders) {
            if (order.getOrderNumber() == num) {
                isUnique = false;
                break;
            }
        }
    }

    return num;
}

Ошибка гласит:

java.lang.NumberFormatException: For input string: "courier"

Если нужен стектрейс напишите в комментах, я добавлю


Ответы (0 шт):