前言
這問題着實讓人苦不堪言,有必要把它記下了。
@JsonBackReference [親測有效]
1.使用注解@JsonBackReference標記在有關聯關系的實體屬性上
2.僅導入此注解類有效:com.fasterxml.jackson.annotation.JsonBackReference;
注:測試過程中,自身項目中分別存在@JsonBackReference、@JsonIgnore 兩類注解類,均是導入 com.fasterxml.jackson.annotation包才生效,反之導入org. codehaus. jackson. annotate 包時未能生效,繼續出現死循環JSON字符串輸出。
@Entity
@Table(name = "tb_article")
public class Article {
/**
* 文章所在URL
*/
@ManyToOne(cascade={CascadeType.MERGE,CascadeType.REFRESH},optional=false,fetch=FetchType.LAZY)
@JoinColumn(name = "fk_url_id", referencedColumnName = "pk_url_id", nullable = false)
@JsonBackReference
private Url url;
@ManyToMany
@JoinTable(name = "r_article_keyword",joinColumns = @JoinColumn(name = "fk_article_id"),
inverseJoinColumns = @JoinColumn(name = "fk_word_id"))
@JsonBackReference
private List<Word> keywords;
...
}
擴展
三大注解
- @JsonBackReference
- @JsonManagedReference
- @JsonIgnore