Developer
Developer

Reputation: 45

I can't insert entity into DB with CRUD operations

I'm trying to insert entity in DB but .save(), edit, etc... not working. It doesn't show any error. Also, this works if I insert it with CommandLineRunner but this way not. Am I forgetting something?

@Entity
@Table(name = "categories")
public class Categories {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "id_category")
    private int id_category;
    @Column(name = "category_name")
    private String category_name;

    public Categories() {
    }
    ...
@Repository("categoriesRepository")
public interface CategoriesRepository extends JpaRepository<Categories, Integer> {

}
@Service
@Transactional
public class CategoriesService{

    public List<Categories> findAll() {
        return categoriesRepository.findAll();
    }

    public void saveCat(Categories categories) {
        this.categoriesRepository.save(categories);
    }
    ...
@Controller
@RequestMapping("admin")
public class AdminController {

    @Autowired
    private CategoriesService categoriesService;

    @RequestMapping(value = "saveCategory", method = RequestMethod.POST)
    public String saveCategories(@ModelAttribute("categories") Categories theCategories) {

        categoriesService.saveCat(theCategories);
        return "redirect:/admin/allCategories";
    }

    @RequestMapping("/editCategories/{id_category}")
    public ModelAndView showEditCategoriesForm(@PathVariable(name = "id_category") int id_category) {

        ModelAndView mav = new ModelAndView("admin/admin_editCategories");
        Categories theCategories = categoriesService.getView(id_category);
        mav.addObject("categories", theCategories);
        return mav;
    }

    @RequestMapping("/deleteCategories/{id_category}")
    public String deleteCategories(@PathVariable(name = "id_category") int id_category) {

        categoriesService.delete(id_category);
        return "redirect:/admin/allCategories";
    }
<form action="#" th:action="@{/saveCategory}" th:object="${categories}"
                      method="post">
  <table border="1" cellpadding="10">
       <tr>
        <td>category</td>
        <td><input type="text" placeholder="enter category" th:field="*{category_name}"/></td>
       </tr>                 
       <tr>
       <td colspan="2"><button type="submit">SAVE</button> </td>
       </tr>
    </table>
</form>

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback.

Sun Oct 20 02:28:01 CEST 2019 There was an unexpected error (type=Not Found, status=404). No message available

Upvotes: 0

Views: 53

Answers (1)

Romil Patel
Romil Patel

Reputation: 13777

Change

@Controller
@RequestMapping("admin")
public class AdminController 

@RequestMapping(value = "saveCategory", method = RequestMethod.POST)
    public String saveCategories(@ModelAttribute("categories") Categories theCategories) {

        categoriesService.saveCat(theCategories);
        return "redirect:/admin/allCategories";
    }

<form action="#" th:action="@{/saveCategory}" th:object="${categories}"
                      method="post">

To

@Controller
@RequestMapping("/admin")
public class AdminController 

@RequestMapping(value = "/saveCategory", method = RequestMethod.POST)
    public String saveCategories(@ModelAttribute("categories") Categories theCategories) {

        categoriesService.saveCat(theCategories);
        return "redirect:/admin/allCategories";
    }

<form action="#" th:action="@{/admin/saveCategory}" th:object="${categories}"
                      method="post">

Upvotes: 1

Related Questions