Метод DeleteById возвращает ноль - PullRequest
0 голосов
/ 27 января 2019

Я пытался удалить строку из базы данных, используя метод Spring data deleteById, но он возвращает ноль.

ProductServiceImpl

public void  removeOne(Long id) {
    Product product = findById(id);
    productRepository.deleteById(product);

ProductRepository

public interface ProductRepository extends CrudRepository<Product, Long> {
    void deleteById(Product product);

Контроллер

@RequestMapping(value="/remove", method=RequestMethod.POST)
public String remove(@ModelAttribute("id") String id, Model model) {
    productService.removeOne(Long.parseLong(id.substring(10)));
    List<Product> productList = productService.findAll();
    model.addAttribute("productList", productList);
    System.out.println("deleted successfully !!!!");
    return "redirect:/product/productList";
}

Ответы [ 2 ]

0 голосов
/ 28 января 2019

@ Autowiredчастный ProductRepository productRepository;

@ RequestMapping (значение = "/ удалить", метод = RequestMethod.POST)public String удалить (@RequestParam String id) {productRepository.deleteById (ID);return "redirect: / product / productList";}

0 голосов
/ 27 января 2019

Почему ты пишешь это сложно.Некоторый код не нужен. Во-первых, вы расширяете CrudRepository, это означает, что вам не нужно создавать собственный метод void deleteById (Product product); , потому что crud содержит метод deleteById.Во-вторых, контроллер, почему вы используете: @ RequestMapping (значение = "/ удалить", метод = RequestMethod.POST) .Я думаю, что это должно: @ DeleteMapping ("/ удалить") .А в контроллере только звонок.

@Autowired
private ProductRepository  productRepository;

@DeleteMapping("/remove/{id}")
public String remove(@PathVariable String id) {
    productRepository.deleteById(id);
    return "redirect:/product/productList";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...