设置哈希集的值时,为什么会出现JsonMappingException?

时间:2018-08-14 17:11:08

标签: java json nullpointerexception one-to-many hashset

我有两个名为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])"

我做错了什么?请告诉我。

0 个答案:

没有答案