懒惰的提取不适用于多对一

时间:2016-07-04 15:13:02

标签: java spring hibernate jpa

我有一个班级BB有一对多的关系,当我想要抓取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}}。

0 个答案:

没有答案