我在Spring Boot应用程序中有两个具有双向ManyToMany关系的类。当我想获取我的实体时,它们开始递归循环,并且我得到了stackoverflow异常。这些是我的实现。
stderr
我知道问题在于我的两个list属性都在构造函数中。但是,我想在响应中具有列表属性。我已经看到了toString方法被覆盖以创建json字符串的解决方案。我希望返回一个对象而不是jsonString。有或没有数据类,有没有办法解决上述问题?如果可以的话,请举个例子。
答案 0 :(得分:0)
请注意,此答案是具有ManyToMany双向关系的Kotlin数据类的解决方案。
@ManyToMany(cascade = [CascadeType.ALL], fetch = FetchType.LAZY)
@JoinTable(name = "ach",
joinColumns = [JoinColumn(name = "route_id", referencedColumnName = "uid")],
inverseJoinColumns = [JoinColumn(name = "athlete_id", referencedColumnName = "uid")])
@JsonIgnoreProperties("routes")
var athletes: List<Athlete> = mutableListOf())
@ManyToMany(mappedBy = "athletes")
@JsonIgnoreProperties("athletes")
var routes: List<Route> = mutableListOf())
通过添加@JsonIgnoreProperties,可以避免递归循环。