我有一个带有页面的应用程序,每个应用程序都可能有子页面:
Page.java
public class Page{
...
@Nullable
@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Page parentPage;
@OneToMany(fetch = FetchType.EAGER, mappedBy = "parentPage")
private List<Page> childPages;
...
}
我想<< Back to parent page
在每个页面上显示一个链接,并链接到它的所有子页面:
view-page.html
<div ng-if="currentPage.parentPage">
<a href="#/view-page?pageId={{currentPage.parentPage.id}}">Back to {{currentPage.parentPage.title}}</a>
</div>
...
<div ng-repeat="row in currentPage.childPages">
<a href="#!/view-page?pageId={{row.id}}">{{row.title}}</a>
</div>
这会导致无限循环父-子-父-...
我尝试使用@JsonIgnore,但后来我丢失了我需要的信息(无论是父母还是孩子)。我还尝试用 . 注释父@JsonManagedReference
页面和子页面列表@JsonBackReference
。然后我可以看到父母,但看不到孩子。我的下一步将是尝试编写自定义序列化程序。
所以我的问题是 - 有没有人知道我怎样才能获得一个parentPage
财产并且仍然能够看到孩子而不进入无限循环孩子 - 父母 - 孩子 - 父母......?