Оператор ошибки «>» не может быть применен к «java.lang.Integer», «void» во время проверки загрузки Spring - PullRequest
0 голосов
/ 12 октября 2018

В моем приложении java-spring boot есть метод.

public OrderDTO save(OrderDTO orderDTO) {
    log.debug("Request to save Order : {}", orderDTO);
    Optional<Product> purchased = productRepository.findById(orderDTO.getProduct());
    Order order = OrderMapper.INSTANCE.toEntity(orderDTO);
    Objects.requireNonNull(purchased.get(), "You cannot buy a non existing product");

    order.setProduct(purchased.get());

    purchased.get().setStock(purchased.get().getStock() - order.getQuantity());

    order = orderRepository.save(order);
    productRepository.save(purchased.get());
    return OrderMapper.INSTANCE.toDto(order);
}

order.quantity не может быть меньше purchase.stock .Поэтому мне нужно создать условие, чтобы проверить это и отправить errorMessage, если order.quantity меньше purchase.stock

Если попытался

if(order.getQuantity() > purchased.get().setStock(purchased.get().getStock())){
        log.debug("Quantity must less than Product stock");
}

но показать ошибку оператор '>' не может быть применен к 'java.lang.Integer', 'void'

Как мне это исправить, чтобы сделать проверку?

Ответы [ 3 ]

0 голосов
/ 12 октября 2018

сеттеры обычно возвращают void, поэтому вы можете попробовать

if(order.getQuantity() > purchased.get().getStock()){
    log.debug("Quantity must less than Product stock");
} else {
    purchased.get().setStock(purchased.get().getStock());
}
0 голосов
/ 12 октября 2018
Integer stock=purchased.get().getStock();
if(order.getQuantity() > stock) {
   log.debug("Quantity must less than Product stock");
} else {
    // Here you pack the order and add into custpmer account and save remaing stock.
    purchased.get().setStock(stock-order.getQuantity());
}
0 голосов
/ 12 октября 2018

Вы сравниваете результат метода getQuantity (целое число) с результатом setStock, пустого метода, который ничего не возвращает.

Вы, вероятно, хотите следующее:

if(order.getQuantity() > purchased.get().getStock()) {
    log.debug("Quantity must less than Product stock");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...