杰克逊未能将OneToMany关系实体反序列化

时间:2017-10-01 10:48:30

标签: java json jackson json-deserialization jackson2

我在两个实体之间拥有oneToMany reltionShip:

public class Product  {
  @JsonBackReference
  private List<ProductDetail> listProductDetail;

并且

public class ProductDetail {
   @JsonManagedReference
   private Product product;

我正在尝试反序列化实体ProductDetail,但我总是遇到以下异常:

jackson can not handle managed/back reference 'defaultreference': back reference type (java.util.list) not compatible with managed type

我尝试了不同的json格式(包括json消息中的产品,删除了这个字段)但总是有相同的结果。

任何人都可以向我解释这个错误意味着什么以及如何在不修改我的实体的情况下解决它(实体是我们的数据模型组件的一部分,供其他同事使用)

由于

1 个答案:

答案 0 :(得分:0)

您可以尝试在实体上使用@JsonIdentityInfo

public class Product  {
  @JsonIdentityInfo
  private List<ProductDetail> listProductDetail;

public class ProductDetail {
   @JsonIdentityInfo
   private Product product;