Darstellung N-M Beziehung

Status
Nicht offen für weitere Antworten.

The_S

Top Contributor
Hi-Ho,

folgendes Szenario: Es gibt Bücher und Autoren. Ein Autor kann mehrere Bücher geschrieben haben, aber ein Buch kann auch von mehreren Autoren geschrieben worden sein. Diese verknüpfe ich jetzt über eine @ManyToMany-Annotation mit Hibernate. Anschließend würde ich gerne als WebService die Methode getAllAutoren bzw. getAllBuecher anbieten. Jetzt stellt sich aber das Problem, wie man so etwas designed, da eine 1zu1-Umsetzung in XML ja imho nicht möglich ist. Dies würde nämlich bedeuten, dass ich bspw. bei getAllBucher im buecher-XML-Tag n Autoren-Tags hätte, welche wiederum n Bücher-Tags beinhalten würden, welche wiederum n Autoren-Tags beinhalten würde ... usw. usf.

Mir sind zwar Lösungen wie das duplizieren der entsprechenden Klasse und dann die Autoren bzw. Bücher-Collection als @XmlTransient zu bezeichnen geläufig, aber für sonderlich sauber halte ich sie nicht. Deshalb meine Frage: Gibt es da irgendwelche Design-Richtlinien, Tipps, ganz andere Vorgehensweisen, oder eigene Erfahrungen, wie so etwas am Besten realisiert wird?

Danke!
 

FArt

Top Contributor
Jetzt mal ganz ohne Hibernate und XML gedacht...

Das löst man doch einfach über Zuordnungs(tabellen).

Also Aufzählung der Bücher, Aufzählung der Autoren, Zuordnung Bücher zu Autoren (oder umgekehrt oder beides).
 

The_S

Top Contributor
Ja, das ist mir schon klar, dass man das über Zuordnungstabellen löst. Mir geht es ja ganz expliziert um die Darstellung in XML und nicht in der Datenbank, damit ich die Daten über einen WebService zur Verfügung stellen kann. Deshalb auch das Posting in der Kategorie "XML und Co." ;) .

Aber trotzdem danke für deine Antwort, immerhin mal eine ;) .
 

foobar

Top Contributor
Kannst du nicht einfach Jaxb oder EMF verwenden?


Ansonsten würde ich versuchen sowas wie Kreuztabellen in Xml nach zu bilden. Also erstmal einen Deklarationsteil wo alle Autoren und Bücher deklariert werden und dann einen Mappingteil in dem die Ids der Autoren zu Ids der Bücher gemapped werden. Genauso wie man das in einer DB machen würde.

Code:
<xmldb>
<declare>

<authors>
<author id ="1" name ="blubb"/>
</authors>

<books>
<book id ="1" name ="my book"/>
</books>

</declare>
<mappings>
<mapping author="1" book="1"/>
</mapping>
</xmldb>
 

The_S

Top Contributor
Hi foobar,

die Attribute werden bereits automatisiert über die javax.xml.bind Annotations in XML umgewandelt, genau dabei tritt ja das Problem auf.

Leider ist das Projekt sehr zeitkritisch, so dass ich nicht erst noch einen eigenen Parser und Interpreter für XML schreiben, oder groß konfigurieren kann, mit dem ich mich noch nicht auskenne (das Buch und Autor Beispiel ist natürlich nicht meine eigentliche Absicht).

Danke!
 

FArt

Top Contributor
Wie gesagt, ganz doof und plain-and-simple XML ohne Schnörkel und Schnick-Schnack:
Code:
<literatur>
  <autoren>
    <autor>Goethe</autor>
    <autor>Schiller</autor>
    <autor>Lessing</autor>
  </autoren>
  <buecher>
    <buch>Wallenstein</buch>
    <buch>Wilhelm Tell</buch>
    <buch>Faust</buch>
    <buch>Novelle</buch>
  </buecher>
  <abzuordnung>
    <autor>Goethe</autor>
    <buecher>
      <buch>Faust</buch>
      <buch>Novelle</buch>
    </buecher>
  </abzuordnung>	
  <bazuordnung>
    <buch>Wallenstein</buch>
    <autoren>
      <autor>Schiller</autor>
    </autoren>
  </bazuordnung>
</literatur>

Für mich ist das die Darstellung einer m-n Beziehung in XML. Wähle frei zwischen abewandelten Lösungen mit Attributen usw.
 

The_S

Top Contributor
Das lässt sich so aber nicht mit Standardtools automatisch mappen ... was aber das Ziel der Anwendung ist :'( .

Oder stehe ich da momentan auf dem Schlauch?

Danke!
 

FArt

Top Contributor
Hobbit_Im_Blutrausch hat gesagt.:
Das lässt sich so aber nicht mit Standardtools automatisch mappen ... was aber das Ziel der Anwendung ist :'( .

Ne, automatisch lässt sich das (auch meines begrenzten Wissens nach) nicht mappen. Diese Anforderung habe ich der Frage aber auch nicht herausgelesen. Ich habe mich nur um die Darstellung gekümmert, kümmer du dich um das Mapping ;-)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
O XML-Daten fehlen in der Darstellung XML & JSON 2

Ähnliche Java Themen


Oben