我正在使用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
答案 0 :(得分:0)
您的@JsonIgnore
上有getParent()
。这就是为什么您的对象为空的原因。
(删除@JsonIgnore
时将出现绑定错误)。
因此,建议您发布一个DTO对象,而不是实体。
在此dto对象中,您可以将父级映射到整数,而在Category
类中,可以将其映射到Parent
。
答案 1 :(得分:0)
RequestBody必须是DTO,在addCategory方法中,您需要通过按ID进行搜索来获取父类别(实体)。
答案 2 :(得分:0)
通过查看您的课程,您的json应该像
{
"name": "Test Category",
"parent": {
"id": 2,
}
}