Hi,
Ich hab folgendes Setup mit einer Baumstuktur, welche durch die Klasse TreeNode abgebildet wird. Bei dieser Baumstruktur können die TreeNode-Objekte des Baumes, welche als Blätter auftreten ein Objekt der Klasse Device enhalten. Die Deviceobjekte können dabei auch mehreren TreeNode-Blättern zugeordnet werden. Das Problem das bei mir nun auftritt, ist dass das Deviceobjekt wissen soll, welchen (elterlichen) TreeNodes es zugeordnet ist. (Also das Parent-Objekt des Blattes, welches das Device-Objekt enthält. Diese ParentObjekte werden in der Liste "classes" in Device gespeichert.)
Hier der Code von TreeNode:
Hier der Code von Device:
Das Problem ist nun, dass mir nun beim Laden eines Deviceobjekts aus der DB entweder mehrmals dieselbe Device - TreeNode Relation gelistet wird ( für den Fall, dass " protected List<TreeNode> classes" nur mit "@ManyToMany" annotiert ist, oder dass gar keine Relationen gespeichert werden, (für den Fall, dass "(mappedBy="parent", fetch = FetchType.EAGER)" Teil der Annotation ist))
Ich hab folgendes Setup mit einer Baumstuktur, welche durch die Klasse TreeNode abgebildet wird. Bei dieser Baumstruktur können die TreeNode-Objekte des Baumes, welche als Blätter auftreten ein Objekt der Klasse Device enhalten. Die Deviceobjekte können dabei auch mehreren TreeNode-Blättern zugeordnet werden. Das Problem das bei mir nun auftritt, ist dass das Deviceobjekt wissen soll, welchen (elterlichen) TreeNodes es zugeordnet ist. (Also das Parent-Objekt des Blattes, welches das Device-Objekt enthält. Diese ParentObjekte werden in der Liste "classes" in Device gespeichert.)
Hier der Code von TreeNode:
Java:
@Id
@GeneratedValue
protected Long id;
protected String name="";
@ManyToOne
protected Device device = null;
@ManyToOne
@JoinColumn(name="parent_id")
protected TreeNode parent = null;
@OneToMany(mappedBy="parent", fetch = FetchType.EAGER)
protected Set<TreeNode> children = new HashSet<TreeNode>();
Hier der Code von Device:
Java:
@Id
@GeneratedValue
private Long id;
protected String name="";
@ManyToMany//(mappedBy="parent", fetch = FetchType.EAGER)
protected List<TreeNode> classes = new ArrayList<TreeNode>();
Das Problem ist nun, dass mir nun beim Laden eines Deviceobjekts aus der DB entweder mehrmals dieselbe Device - TreeNode Relation gelistet wird ( für den Fall, dass " protected List<TreeNode> classes" nur mit "@ManyToMany" annotiert ist, oder dass gar keine Relationen gespeichert werden, (für den Fall, dass "(mappedBy="parent", fetch = FetchType.EAGER)" Teil der Annotation ist))