Я стремлюсь сделать эту простую вещь: я хочу древовидные отношения (забудь о производительности, она будет мелкой, не более 2 -3 уровней).Я попробовал это:
@ Entity @Table (name = "BASE") открытый класс BaseEBean {
int id;
String text;
BaseEBean parent;
Set<BaseEBean> children = new HashSet<BaseEBean>();
@Id
@GeneratedValue
@Column(name = "ID")
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Column(name = "TEXT")
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
@ManyToOne
@Cascade(value = { CascadeType.ALL })
public BaseEBean getParent() {
return parent;
}
public void setParent(BaseEBean parent) {
this.parent = parent;
}
@OneToMany(mappedBy = "parent", fetch = FetchType.EAGER)
public Set<BaseEBean> getChildren() {
return children;
}
public void setChildren(Set<BaseEBean> children) {
this.children = children;
}
}
Я проверил это, запустив два компонента A иB. Сохранение A. Установка A в качестве родителя B.Сохранение B. Затем загрузка из базы данных A. Я ожидал, что набор будет содержать B, но не повезло.Свойство Children будет иметь размер () = 0. Я даже не пытался удалить .. но я пессимистичен.
Помощь?