Jpa2 -> jaxb???

Landei

Top Contributor
Hallo Leute,

nachdem ich in meinem Projekt die Persistenzschicht mit JPA2 (stand-alone) so einigermaßen im Griff hatte, ist es den höheren Mächten eingefallen, die Architektur komplett umzukrempeln und auf XML umzusteigen. Ich kann gar nicht soviel essen, wie ich k%&$&n möchte. Absoluter Irrsinn...

Ich habe noch nie mit JAXB gearbeitet, aber die Grundlagen sind so einigermaßen klar. Aber es ist natürlich ein Unterschied, ob ich mal eben ein HelloWorld als XML-File schreiben will, oder ein komplettes Modell mit M:N-Beziehungen, Embedded Krempel und Kringelchen und Schleifchen abzubilden. Habt ihr vielleicht ein paar Tipps für mich auf Lager? Ich meine, außer zu kündigen?
 
M

maki

Gast
Ich meine, außer zu kündigen?
YMMD :D

k.A. ob das hilft, aber wenn die öfters solche seltsamen Ideen haben sollten, lohnt es sich vielleciht irgendwann auf JDO umzusteigen, das ist nämlich - anders als JPA - nicht auf RDBMS beschränkt.
 

Ebenius

Top Contributor
Bevor die Trivial"lösungen" ganz vergessen werden: Sicher, dass sich das Problem nicht wegdiskutieren/aussitzen/vergessen/delegieren lässt? Vielleicht wartest Du einfach zwei Wochen, bis die Anforderungen sich wieder zum Besseren geändert haben werden?

Mit der knappen Beschreibung kann man natürlich nur sehr begrenzt erahnen, wie das neue Persistenzkonzept ausschauen soll…

Ebenius
 

Wildcard

Top Contributor
Nimm EMF statt JaxB. Bei EMF ist es egal ob du binär, textuell, XMI, XML oder in eine Datenbank über JPA serialisierst.
Für JPA im speziellen gibt es EclipseLink und EMF Teneo, XML wird sowieso out-of-the-box unterstützt.
 

Landei

Top Contributor
Danke für die Tipps! Aussitzen ist leider nicht, und ändern wird sich das auch nicht, denn der Grund für den Schwenk waren Sicherheitsbedenken (sprich: Paranoia).
 

Wildcard

Top Contributor
Falls EMF für dich in Betracht kommt, sollte die Umstellung eigentlich recht einfach sein. Falls für deine Modellklassen schon Interfaces exisitieren kannst du einfach die Interfaces mit EMF Annotations versehen und daraus ein Ecore erzeugen lassen. Für den Rest der Anwendung sollte dann alles beim Alten bleiben. Wenn du keine Interfaces hast lässt sich das mit Extract Interface Refactoring ziemlich automatisiert erledigen.
Sobald du das Ecore hast kannst du daraus Implementierungen generieren die als Hybrid funktionieren sollten, also aus der DB geladen werden können und anschließend als XML gespeichert werden können.
Wenn du kein Hybridmodell brauchst (weil du zB keine Bestandsdaten migrieren musst), ist es wohl einfacher direkt ein Ecore anzulegen, oder aus einem XSD zu importieren.
Egal wie hast du später den Vorteil das es dich später nur ein müdes Lächeln kostet wenn statt XML doch wieder eine DB verwendet werden soll.
 

Landei

Top Contributor
Die Frage, die sich jetzt nach einiger Beschäftigung mit EMF stellt ist, wie XMI ins Bild passt. Ist es möglich, ausgehend von einem ECore ein bestimmtes XML-Mapping zu generieren (so dass eine Reihe von XML-Dateien wie eine Datenbank verwendet werden kann), oder bin an XMI gebunden?

Und sehen ich es richtig, dass ich für meinen Client eine Art "EMF-Runtime" mitliefern muss?
 

Wildcard

Top Contributor
Die Frage, die sich jetzt nach einiger Beschäftigung mit EMF stellt ist, wie XMI ins Bild passt. Ist es möglich, ausgehend von einem ECore ein bestimmtes XML-Mapping zu generieren (so dass eine Reihe von XML-Dateien wie eine Datenbank verwendet werden kann), oder bin an XMI gebunden?
XMI ist nur eine Serialisierungsvariante. Out-of-the-box unterstützt EMF XMI, XML, Binär, textuell und relational (zB über JPA). Wenn das nicht reicht kann man natürlich auch eigene Serialisierungsmechanismen bauen. Das schöne ist, für dein Modell ist es völlig unerheblich wie es gespeichert und geladen wird.
Um EMF Modelle in ein ganz bestimmtes XML Format zu speichern gibt es 2 Wege. Entweder Schema First, also ein XML Schema schreiben und von EMF daraus ein Modell bauen lassen, oder erst das Modell anlegen und dann annotieren um das XML Format festzulegen.
Und sehen ich es richtig, dass ich für meinen Client eine Art "EMF-Runtime" mitliefern muss?
EMF hat eine Runtime (ein jar, ein wohl so um die 200kb) die normalerweise benötigt wird. Das ist bei Jaxb auch nicht anders, nur ist Jaxb mittlerweile Teil der JRE.
Die Runtime bringt IMO enorme Vorteile da dadurch EMF Modelle bei wenig Code sehr Featurereich sind (Listener Schnittstellen, EOpposites, erweiterte Collections, EMF Reflections usw.), aber wenn man all das nicht haben möchte und absolut kein jar einbinden will der kann mit EMF Texo auch Java Pojos generieren die keine Abhängigkeit zu EMF haben (man verliert natürlich viele coole Features).
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
8u3631984 jaxb XML Mapper - Root Element mit Attribut XML & JSON 20
W jaxws jaxb wsdl Java-Klassen generieren und binding.xml verwenden XML & JSON 1
Rakshan Unmarshalling multiple namespaces with jaxb XML & JSON 0
B JAXB und HTML XML & JSON 1
E JAXB und java.nio.file.Path XML & JSON 4
W jaxb-api XML Feld nicht gesendet setzt das Defaultvalue nicht XML & JSON 3
S Muss ich bei JAXB immer noch eine zusaetzliche List-Wrapper Klasse erstellen wenn ich mehrere Objekte serialisieren will..? XML & JSON 1
S JAXB mit mehreren zusammenhängenden .xsd-Files XML & JSON 0
N JAXB: Überflüssiges Wrapper-Tag für Map-Einträge XML & JSON 0
D JAXB mit Map und Color XML & JSON 2
K JAXB-XML unvollständig XML & JSON 1
K JAXB Unmarshelling XML & JSON 1
E JAXB und abstrakte Klasse(n) XML & JSON 0
B JAXB - Unmarshal -> Kinder bekommen und die Kinder von den Kinder XML & JSON 7
B JAXB - Marshal ArrayList XML & JSON 2
B JAXB - java.util.Locale does not have a no-arg default constructor XML & JSON 2
B JAXB-Fehler bei REST-Api XML & JSON 0
M JAXB HashMap Dynamisches Laden XML & JSON 0
M JAXB @XMLID und @XMLIDREF, wie Daten hinzufügen XML & JSON 2
P JAXB-Problem XML & JSON 1
A JAXB: XMLMixed generieren XML & JSON 0
R [JAXB] XmlRootElement und XmlType gemeinsam nutzen XML & JSON 0
I XML to Object - Mapping mit JAXB 1.0 XML & JSON 1
L JAXB - Generischen Wert mit Liste belegen XML & JSON 1
M XML-Datei mit JAXB und 2 Namespaces XML & JSON 0
K JAXB Annotation @XMLRootElement vererben XML & JSON 0
F JAXB Unmarshal - Kein "default Constructor" XML & JSON 2
F.S.WhiTeY JAXB: Schema nicht "erben" XML & JSON 2
B JAXB - manuell Klassen aus xsd XML & JSON 3
S Jaxb Unmarshalling Problem XML & JSON 4
S JAXB - Any Elementliste - wie Werte verändern? XML & JSON 4
R JAXB: A cycle is detected in the object graph. This will cause infinitely deep XML XML & JSON 6
M JAXB versucht abstrakte Klasse zu erzeugen XML & JSON 7
M JAXB: automatisches Groß schreiben Property XML & JSON 9
C Projekt - JAXB, EMF oder doch DOM? XML & JSON 4
C JAXB: XML-Elemente einlesen und als XML-Attribute ausgeben XML & JSON 7
R sax, stax, jdom, jaxb? List von Objekten speichern und laden XML & JSON 6
J JAXB: Mehrmals abspeichern XML & JSON 3
D XML Einlesen mit JaxB XML & JSON 4
W JAXB Binding customization XML & JSON 4
L JAXB und Interfaces XML & JSON 4
S Problem with JAXB unmarshalling classes that have the same name in @XmlRootElement XML & JSON 2
eykarhorn JAXB namespace attribut aus rootelement entfernen XML & JSON 2
nrg JAXB - nor any of its super class is known to this context XML & JSON 3
S aus XML mit JAXB zu Baumstruktur XML & JSON 3
nrg JAXB generell auf XMLs übertragbar XML & JSON 22
Landei JAXB: Wert von übergeordneten Element XML & JSON 4
B PropertyChangeListener generieren mit JAXB (xjc) XML & JSON 3
G JAXB und verschachtelte Elemente? XML & JSON 6
G JAXB XML-Attribute feststellen XML & JSON 4
S JAXB 2 und JSR 303 XML & JSON 11
M [JAXB] @XmlAnyElement namespace XML & JSON 4
R JAXB Unmarshal XML & JSON 2
J JAXB und ArrayList XML & JSON 4
M JAXB - HashMap XML & JSON 1
dzim JAXB-Unmarshalling ignoriert/löscht Einträge aus XML - oder lässt sie verschwinden XML & JSON 3
S JAXB 2 und Java Annotationen/Interfaces generieren XML & JSON 3
ruutaiokwu jaxb eclipse plugin... XML & JSON 3
K JAXB: Klassen mit Annotation Lesen/Schreiben XML XML & JSON 3
R JAXB ausgewählte Felder XML & JSON 10
TiME-SPLiNTER JAXB: com.sun.xml.bind.v2.ContextFactory XML & JSON 3
V JAXB und leere Listen XML & JSON 2
L compareto(), equals() in JAXB generierten Dateien XML & JSON 3
D jaxb validierung/verification vor marshalling XML & JSON 3
J JAXB mit GregorianCalendar XML & JSON 4
HombreDelMundo JAXB can't handle interfaces XML & JSON 4
N Individuelles Wrapper-Element um Collection mit JAXB XML & JSON 6
B JAXB Unmarshalling mehrerer Objekte XML & JSON 2
V JAXB schema 2 java XML & JSON 3
B JPA + JAXB Mapping Problem XML & JSON 2
S Navigieren in unbekannten JAXB-Objecten XML & JSON 2
J JAXB NullPointerException im ContextFinder XML & JSON 6
H JAXB und STAX XML & JSON 2
H JAXB Probleme beim Unmarshalling XML & JSON 3
C Serialisierung mit JAXB XML & JSON 6
K JAXB und Maps -> Marshalling-Problem XML & JSON 6
S JAXB und viele verschachtelte Attribute XML & JSON 1
J JAXB - Map XML & JSON 2
O JAXB generierte Klassen sollen Serializable implementieren XML & JSON 1
aze JaxB: Nullelemente in Array nicht anzeigen XML & JSON 3
turmaline JAXB can't handle interfaces XML & JSON 20
sambalmueslie JAXB - Unmarshall ein XML-Document das aus zwei XSD Definitionen besteht XML & JSON 8
S JAXB und abstrakte Klasse(n) XML & JSON 4
P JAXB: Marshalling XML & JSON 7
aze JaxB Elemente in LinkedHashSet werden nicht wiededergegeben XML & JSON 3
M JAXB: Wie folgendes Konstrukt abbilden? XML & JSON 20
A Jaxb und Interfaces XML & JSON 12
B JaxB und XSD :-) XML & JSON 8
G JAXB - Marshaller - kein Rückgabewert XML & JSON 2
N XML will nicht weder JAXB noch XStream XML & JSON 8
F Zugriff auf durch JAXB erzeugte Object-Struktur... XML & JSON 6
C Java-Imports bei Jaxb XML & JSON 8
F Marshaling eines JAXB Objektes worin ein anderes JAXB Objekt eingeschlossen ist XML & JSON 6
K JAXB, Vererbung und Codegeneration XML & JSON 2
M XmlRootElement und JAXB XML & JSON 4
R JAXB: Aus einem Vector oder List XML Datei erstellen XML & JSON 1
G jaxb Vector (oder ähnliches) von Elementen generieren XML & JSON 6
M Jaxb Annotationen, Wert als XML Element XML & JSON 2
J JCheckbox abfragen und serialisieren mit JAXB 2.0 XML & JSON 15
F JAXB erste schritte XML & JSON 6

Ähnliche Java Themen

Neue Themen


Oben