Klassenbeziehung speichern
-
Hallo,
ich habe ein Objekt das zwei Verweise auf andere Objekte hat. Diese kann ich jedoch nicht einfach zusammen speichern, da die zwei Objekte auch noch an andere Objekte gebunden sind. Um das gesammte Konstrukt wieder zusammenzustellen viele mir nur der Umweg über IDs ein. So könnte ich zu dem Objekt mit den Verweisen die ID zu den referenzierten Objekten speichern und das ganze beim Laden wieder zusammenbauen.
Meint ihr das dies eine sinnvolle Lösung wäre oder habt ihr da eine bessere Idee?
-
Hab zwar nicht verstanden warums nicht geht, aber bei der verwirrten Beschreibung würde ich sagen alles umbauen.
-
Hi
erst mal ne gegenfrage wie willst du dein Objekt eigentlich speichern? in ner Datenbank oder als einfache Binäre serialisierung?
Bei einer DB bleibt dir (im extremfall) nichts andres übrig als für jedes Objekt ne Tabelle anzulegen und die Tabellen mit IDs zu referenzieren
beim Seriallisieren ist dagegen darauf zu achten, das alle objekte das Interface Serializable implementieren. Wenn das nicht der fall ist gibts hássliche fehlermeldungen Can not Serializ bla bla bla. ggf dazu auch mal im javabuch oder java ist eine Insel nachschlagen. da stand zu dem thema auch was drinn.
gruss
-
Hallo,
vielen Dank erstmal.
Ich muss das ganze in XMLs speichern.
Ich versuche das ganze mal so zu erklären:
Ich habe ein Klasse A, diese enthält eine Liste von Objekten der Klassen B und C.
Nun habe ich noch eine Klasse D, welche zwei Referenzen auf Objekte der Klassen B und C enthält. Und hierbei weiß ich nicht wie ich Objekt D speichern kann ohne die Verweise auf B und C zu verlieren.Hierbei ist mir eben die Idee mit den IDs (ähnlich wie bei Datenbanken) gekommen. Mir ist auch noch aufgefallen, dass ich statt einer Collektion zum speichern der Listen vielleicht auch Maps benutzen könnte, da diese auch eine einzigartige ID zum Zuordnen haben....
-
Hi
so wie du dass jetzt beschrieben hast scheint D ja auf Elemente von A zu verweisen. Somit würde ich, fals das überhaupt möglich ist, D mit in der Datei für A speichern.
Anderer vorschlag währe sich mal nur die daten anzuschauen und zu überlegen, was alles gespeichert werden muss, ohne mal rücksicht auf die objekte strucktur zu nehmen. Ggf findet sich da dann eine einfachere lösung die daten zu speichern.
ggf Reicht es ja beim speichern aus. den objekten B und C nur einen merker mit zu geben, das sie auch in D gespeichert sind.
Oder so wie du es machen willst, alle Objekte B und C mit einer laufenden nummer oder ID versehen, und diese dann als referenzIDs in der XML Strucktur für D verwenden.
<A> <B id="1001"> <entry/> </B> </A> <D> <B ref="1001"/> </D>
Gruss Termite