弹簧引导的一对多关系中的无限循环 [英] Infinite loop with spring-boot in a one to many relation
本文介绍了弹簧引导的一对多关系中的无限循环的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在其他应用程序中,我将Spring Boot与jpa一起使用.
In a rest application, I use spring boot with jpa.
我有一个寄宿生课程
谁拥有
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger")
private List<Reference> referenceList;
在我的课堂参考资料中,我有
In my class Reference, i have
@ManyToOne
@JoinColumn(name = "lodgerId")
private Lodger lodger;
当我调用此方法时
@RequestMapping(value = "/lodgers/{lodgerId}", method = RequestMethod.GET)
public Lodger getLogderById(@PathVariable("lodgerId") long lodgerId) {
return lodgerService.getLodger(lodgerId);
}
我收到此错误
org.springframework.http.converter.HttpMessageNotWritableException: Could not write content: Infinite recursion (StackOverflowError) (through reference chain: server.bean.Lodger["referenceList"]->org.hibernate.collection.internal.PersistentBag[0]->server.bean.Reference["lodger"]->server.bean.Lodger["referenceList"]->org.hibernate.collection.internal.PersistentBag[0]->server.bean.Reference["lodger"]->server.bean.Lodger["referenceList"]...
推荐答案
解决方案:
使用
@JsonManagedReference
注释
@JsonBackReference
注释
第一:
@JsonManagedReference
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "lodger")
private List<Reference> referenceList;
第二:
@JsonBackReference
@ManyToOne
@JoinColumn(name = "lodgerId")
private Lodger lodger;
这篇关于弹簧引导的一对多关系中的无限循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文