我有一个班级B
与B
有一对多的关系,当我想要抓取A
时,我不想取@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"}, ignoreUnknown = true)
@Generated("org.jsonschema2pojo")
@Entity
public class B{
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL, optional = false)
@JoinColumn(name = "aId")
private A a;
}
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(value = {"hibernateLazyInitializer", "handler"}, ignoreUnknown = true)
@Generated("org.jsonschema2pojo")
@Entity
public class A {
@OneToMany(mappedBy = "a", fetch = FetchType.LAZY, cascade = CascadeType.ALL)
private Set<B> bs;
}
,这意味着我想要一个懒惰的提取,在这种情况下我的代码看起来像这样(没有写setter和getter方法)
@JsonBackReference()
问题在于我获得了无限递归,其中B包含A而A包含Bs等等,我尝试在ManyToOne
使用@JsonManagedReference()
并在{{OneToMany
使用EAGER
1}}这解决了递归问题,但提取仍然是LAZY
而不是@JsonIgnore
。此外,我不想使用A
,因为我的观点是没有发送另一个查询来获取{{1}}。