+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Referenz unterschiedlich nach Unmarshal

  1. #1
    User short Themenstarter

    Registriert seit
    01.08.2013
    Fachbeiträge
    29
    Genannt
    0 Post(s)
    Hallo miteinander,

    ich habe folgendes Problem: Es gibt Klasse A. Klasse A enthält zwei Listen: eine der Klasse B und eine der Klasse C. Ein Objekt der Klasse B besitzt immer eine Variable, die eines der Objekte der Klasse C (gleiches Objekt wie auch in der Liste<C> der Klasse A) referenziert. So weit, so gut.

    Jetzt speichere ich die Klasse A in eine XML-Datei mithilfe von JAXB. Das funktioniert auch ohne großes Zutun. Beim Laden der Datei habe ich allerdings das Problem, dass nun zwei unterschiedliche Objekte der Klasse C erstellt werden. Einmal das in der Liste in Klasse A und das Objekt in der Instanz der Klasse B. Modifiziere ich jetzt eines der beiden, hat es auf das andere keine Auswirkungen, und das ist schlecht.

    JAXB vermerkt das Ganze in der Datei halt nicht als Referenz oder Ähnliches, sondern schreibt es in seiner Form halt noch mal. Und dann wird daraus an beiden Stellen wieder ein Objekt erstellt — die natürlich gleich sind, aber eben nicht diesselben.

    Hat jemand da einen Rat, wie man das löst? Vielen Dank schon mal!

  2. #2
    User Megabyte Avatar von Timothy_Truckle
    Registriert seit
    01.08.2013
    Ort
    Wasserkuppe
    Fachbeiträge
    1.329
    Genannt
    85 Post(s)
    Blog-Einträge
    5
    Hast Du denn in der XSD B an einer der beiden Stellen als Referenz zur anderen definiert?

    bye
    TT

  3. #3
    User short Themenstarter

    Registriert seit
    01.08.2013
    Fachbeiträge
    29
    Genannt
    0 Post(s)
    Die Klassen waren zuerst da. Es gibt also keine Schemadatei. Lediglich das @XmlRootElement habe ich halt zur Klasse hinzugefügt ...

  4. #4
    User short Themenstarter

    Registriert seit
    01.08.2013
    Fachbeiträge
    29
    Genannt
    0 Post(s)
    Habe es derweil gelöst. Man muss der Klasse C einen eindeutigen Schlüssel geben, in etwa so:

    Java Code:
    1. public class C {
    2.     @XmlID
    3.     private String key;
    4. }

    und dann kann man anschließend die Referenz auch als solche definieren:

    Java Code:
    1. public class B {
    2.     @XmlIDREF
    3.     private C c;
    4. }

    Das Objekt muss selbstverständlich noch anderswo existieren und vollwertig gespeichert werden.
    Geändert von Aru (11.11.2014 um 19:45 Uhr)

  5. Es bedanken sich:
    Timothy_Truckle (11.11.2014)
+ Antworten Thema als "offen" markieren

Direkt antworten Direkt antworten

Nenne einen der beiden magnetischen Pole der Erde!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. (JavaFX) ImageView und die CSS Referenz
    Von NiRu im Forum AWT, Swing, JavaFX & SWT
    Antworten: 0
    Letzter Beitrag: 28.08.2014, 02:01
  2. JSF DataTable-Column unterschiedlich darstelllen
    Von Greta im Forum Java Enterprise Edition (Java EE)
    Antworten: 5
    Letzter Beitrag: 13.01.2014, 08:58
  3. referenz oder kopie?
    Von mymaksimus im Forum Java-Grundlagen
    Antworten: 7
    Letzter Beitrag: 23.10.2013, 22:23
  4. (Listen) Referenz oder Objekt.in einer Liste
    Von Unregistriert im Forum Java-Grundlagen
    Antworten: 2
    Letzter Beitrag: 14.08.2013, 23:48
  5. SelfPHP - Die kostenlose PHP-Referenz
    Von L-ectron-X im Forum Byte-Welt Fundgrube
    Antworten: 0
    Letzter Beitrag: 09.11.2008, 10:23

Berechtigungen

  • Neue Themen erstellen: Ja
  • Themen beantworten: Ja
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •