SyntaxError: JSON.parse: unterminated string literal at line 1 column 9018638 of the JSON data

在这里插入图片描述

  • 问题:
    两张表双向多对一、一对多时。响应给后台使,出现此错误
  • 分析: 双向关系,生成json的时候是相互调用,需要有一方忽略对方
    要完成的功能时,一方能够找到多方,多方反过来又能找到一方。所以响应给前台时F12-查看网络-找到post请求,然后分别查看参数和响应会发现,参数没有问题,而响应就会报以上错误。点击json数据进去查看就会发现很多数据,响应进入了死循环。(一方找多方,找了很多,然后反过来多方又去找一方找了很多,最后又循环去找)
  • 解决:
    在双向的两方的其中任何一方关联字段上配置@JsonIgnore这个配置就可以了。
  • 实例说明:
    单据是组合关系。也就是所谓的强聚合。(双向的一对多、多对一)。
    两者都不能抛弃另一方。所以要配置最强的级联(cascade = CascadeType.ALL),还要有孤儿删除(orphanRemoval = true)。还有:由于一对多性能差,所以一方要放弃维护关系,让多方维护(mappedBy = “一方的字段”)
  • 实例
    单据采购表单:
	//采购明细和采购单多对一关系
    @ManyToOne(fetch = FetchType.LAZY,optional = false)
    @JoinColumn(name = "bill_id")//表中的采购单外键
    @JsonIgnore //生成json的时候忽略这个属性
    private Purchasebill billId;

单据采购明细:

	// 一般组合关系使用List (采购单和采购明细单是组合关系:双向多对一,一对多)
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "billId", fetch = FetchType.LAZY, orphanRemoval = true)
    private List<Purchasebillitem> items = new ArrayList<Purchasebillitem>();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值