我可以使用@JsonManagedReference& @JsonBackReference在同一个实体类中?

时间:2018-06-13 19:47:31

标签: java spring-data-jpa spring-data jackson2

我在线看,无法得到确切的答案。我已经通过this阅读了Baeldung以及此页面。这是我的例子

@Entity
public class A {

  @ManyToOne(cascade = { CascadeType.ALL })
  @JoinColumn(name = "parent_id")
  @JsonManagedReference
  private A parent;

  @OneToMany(cascade = { CascadeType.ALL }, fetch = FetchType.LAZY, mappedBy = "parent")
  @OrderBy("executeOrder asc")
  @JsonBackReference
  private Set<A> children;

// getters & setters
}

我想说,这实际上对我有用并解决了我的无限递归问题。但如果这是正确的做法,我会感到困惑。

我使用了@JsonIdentifyInfo,但这并没有解决我的问题,我无法使用@JsonIgnore,因为我是那些字段。

1 个答案:

答案 0 :(得分:0)

如果您也可以将问题场景放在问题中,那么这将有助于建议解决方案。 按照设计,从字面上看,一个类将自己引用为M2O关系,然后再次将O2M关系本身保持为明智? 似乎是架构设计问题。