2
我有模型類別。它可能有父類別和子類別列表。我寫了這個問題,因爲找不到與實體相關的情況。爲什麼不FetchType.Lazy工作?
我想實現這樣的:
@Entity
public class Category {
@Id
private String id;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "parent_id")
private Category parent;
@OneToMany(mappedBy = "parent", fetch = FetchType.EAGER, cascade = CascadeType.PERSIST)
private List<Category> subcategories = Lists.newArrayList();
}
我省像實體:
Category parent = new Category();
parent.setName("parent");
Category child1 = new Category();
child1.setName("child1");
child1.setParent(parent);
parent.getSubcategories().add(child1);
categoryPersistence.save(parent);
我希望看到這樣的:
parent {
id
parent: null
childs {
child {
id
parent: ...lazy loading exception...
childs: null
}
}
}
但在兒童模特提交父母我有遞歸循環。 如何防止它?
是的,我也用@JsonIgnore。但我不確定這是否是好的做法。 但是,如果我有一個案件,當我需要一個類別,我真的需要發送它與UI的UI。 @JsonIgnore可以產生這個嗎?
關於獲取實際對象的方法,您可以在參數中使用一個布爾值,例如名爲'referenced'的參數,然後在對象調用其自身時將其設置爲true。然後在構建過程中,檢查'if(!referenced){...'這樣你就可以避免遞歸循環,只獲取一次引用。 – ghoulfolk