保存类别时如何设置父类别?

时间:2019-05-14 11:23:43

标签: java hibernate spring-mvc spring-rest

我正在使用spring和hibernate开发一个宁静的应用程序。

我正在发布此JSON

  {
     "name": "Test Category",
     "parent": 2
   }

由此,我无法在控制器发布方法中获取父ID。当我使用theCategory.getParent()时,它返回null。

这是我的控制器发布方法。

@PostMapping("/categories")
public Category addCategory(@RequestBody Category theCategory) {


    System.out.println("The parent category : " + theCategory.getParent());

    // set id to 0
    theCategory.setId(0);
    categoryService.saveCategory(theCategory);

    return theCategory;

}

保存类别时,设置父类别的最佳方法是什么?这是我的类别课程-https://github.com/iyngaran/test/blob/master/Category.java

3 个答案:

答案 0 :(得分:0)

您的@JsonIgnore上有getParent()。这就是为什么您的对象为空的原因。

(删除@JsonIgnore时将出现绑定错误)。 因此,建议您发布一个DTO对象,而不是实体。 在此dto对象中,您可以将父级映射到整数,而在Category类中,可以将其映射到Parent

答案 1 :(得分:0)

RequestBody必须是DTO,在addCategory方法中,您需要通过按ID进行搜索来获取父类别(实体)。

答案 2 :(得分:0)

通过查看您的课程,您的json应该像

{
   "name": "Test Category",
   "parent": {
          "id": 2,
    }
}