我有两个名为A和B的POJO类。模型类如下。
class A {
@OneToMany(fetch = FetchType.LAZY,mappedBy = "param")
private Set<B> params = new HashSet<>();
// other attributes and getters and setters.....
}
class B {
@ManyToOne(fetch= FetchType.LAZY)
@JoinColumn(name="a_id")
@JsonIgnore
private A param;
// other attributes and getters and setters.....
}
我已经编写了一个rest控制器方法来将实体A与B持久化。 保存实体A时,我也想同时保存实体B。
我在我的rest方法正文中传递了以下内容。
{
"description": "test_des",
"name": "test_name",
"params": [
{
"name": "string",
"text": "string",
}
]
}
如果我通过上述json,则我的方法运行良好,它将实体A保存在数据库中,然后将实体B保存为实体A的引用。但是我的问题是,我想用A保存多个B实体,为此,我必须传递如下的对象数组。
{
"description": "test_des",
"name": "test_name",
"params": [
{
"name": "string",
"text": "string",
},
{
"name": "string2",
"text": "string2",
}
]
}
这会给我一个错误,
"org.springframework.http.converter.HttpMessageNotReadableException:
Could not read document: (was java.lang.NullPointerException)
(through reference chain: com.a.model.A["params"]->java.util.HashSet[1]);
nested exception is com.fasterxml.jackson.databind.JsonMappingException:
(was java.lang.NullPointerException) (through reference chain: com.a.model.A["params"]->java.util.HashSet[1])"
我做错了什么?请告诉我。