Hi
Ich hoffe, dass ich dich richtig verstanden habe... du willst also eine Tabelle für Elemente mit einer Elter-Kinder-Beziehung, d.h. jedem Element wird explizit genau ein oder kein Elternelement zugeordnet, und implizit kann jeder Eintrag beliebig viele (auch 0) Kindselemente haben (Menge der Einträge, wo dieser Eintrag als Elter eingetragen ist).
Also ganz allgemein wäre meine Klasse dafür folgende:
Code:
// package, import(s)...
@Entity
public class Element {
// private id mit protected getId(), setId(), @Id
// sonstige Eigenschaften
@ManyToOne(optional=true, mappedBy="children")
private Element parent = null;
// setParent(), getParent()
@OneToMany(fetch=FetchType.EAGER, mappedBy="parent")
private Set<Element> children = new HashSet<Element>();
// protected: setChildren(), getChildren()
// public: addChild(), iterateChildren(), removeChildren(), childCount()
}
Es tut mir leid, aber die Programmierung mit Hibernate und JavaBeans setze ich jetzt mal voraus... bei Fragen ruhig nachhakenEin Auszug aus meiner Person-Klasse, bei der eine solche Hierarchie in der Art wie Firma<1..*>Mitarbeiter verwirklicht ist und fuktioniert:
Code:
private Set<Person> members; // Liste der zugehörigen Personen (i.S.v. unterstellten Menschen oder Unternehmensteilen)
@OneToMany(mappedBy = Person.COLUMN_MEMBER_PARENT, fetch = FetchType.EAGER)
public Set<Person> getMembers() { return members; }
protected void setMembers(Set<Person> members) { if(members==null) return; this.members = members; }
private Person memberOf; // Referenz auf die übergeordnete Person
@ManyToOne(optional = true)
public Person getMemberOf() { return memberOf; }
public void setMemberOf(Person memberOf) { this.memberOf = memberOf; }
Hat das geholfen?