如何与Kotlin一起使用JPA ManyToMany双向关系

时间:2018-11-07 15:49:08

标签: spring-boot jpa kotlin many-to-many

我在Spring Boot应用程序中有两个具有双向ManyToMany关系的类。当我想获取我的实体时,它们开始递归循环,并且我得到了stackoverflow异常。这些是我的实现。

stderr

我知道问题在于我的两个list属性都在构造函数中。但是,我想在响应中具有列表属性。我已经看到了toString方法被覆盖以创建json字符串的解决方案。我希望返回一个对象而不是jsonString。有或没有数据类,有没有办法解决上述问题?如果可以的话,请举个例子。

1 个答案:

答案 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,可以避免递归循环。