开发者社区> 问答> 正文

使用gson.toJson(object)时发生错误

使用gson.toJson(object)时发生错误:java.lang.StackOverflowError,求解决办法? strut2 + hibernate + spring.
现有有2个对象:shippingList(物流公司的托运单)和receiver(收货人),这2个对象设置了双向级联关系
以下是这2个对象的实体类代码:

@Entity(name = "t_shippingList")
public class FreightCenter_shippingList extends SystemOther_entityModel {
    private Integer indexs;         // 主键,唯一标志
    private String id;              // 托运单号
    private ReferenceRoom_receiver receiver;//收货人
 
    @ManyToOne(cascade = { CascadeType.MERGE }, fetch = FetchType.EAGER)
    @JoinColumn(name = "receiver_indexs")
    public ReferenceRoom_receiver getReceiver() {
        return receiver;
    }

    public void setReceiver(ReferenceRoom_receiver receiver) {
        this.receiver = receiver;
    }
}
@Entity(name="t_receiver")
public class ReferenceRoom_receiver extends SystemOther_entityModel {
    private Integer indexs;             //主键
    private String id;                  //客户代号
    ......
    ......
    ......
    private Set<FreightCenter_shippingList> shippingList;//托运单
    ......
    ......
    ......
    @OneToMany(fetch=FetchType.LAZY,mappedBy="receiver")
    public Set<FreightCenter_shippingList> getShippingList() {
        return shippingList;
    }

    public void setShippingList(Set<FreightCenter_shippingList> shippingList) {
        this.shippingList = shippingList;
    }
}

我们希望可以通过shippingList这个对象能够查询到receiver这个对象,添加修改shippingList的时候,也能添加修改receiver这个对象.
通过receiver这个对象也能查询shippingList这个对象.
对查询出来的数据,我们使用gson将它转换成json格式的数据,但是,当我们使用gson.toJson(object)语句进行转换时,发生了错误。
错误代码如下:
screenshot
screenshot
screenshot
我想,之所以发生java.lang.StackOverflowError这个错误,是因为receiver(收货人)这个对象是shippingList(托运单)这个对象的一个属性,同时,shippingList(托运单)也是receiver(收货人)的一个属性,数据关联进入了死循环导致了这个问题.
可是另外一方面,我觉得很hibernate会解决双向级联后引起的这个问题。
我的问题是:
1)我的级联设置中是不是出现了什么问题?
2)对于这个错误,我该如何解决?

展开
收起
蛮大人123 2016-02-27 17:38:52 7110 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    之所以出现这个错误,是因为双向关联时相互引用,导致进入死循环,解决办法是gson转换成json时,忽略receiver.shippingList这个字段,这个字段不用转换就可以了.

    2019-07-17 18:49:06
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载