Persistenz/Anwendungsmodel

pl4gu33

Top Contributor
Hey,....

ich hab folgendes Problem, ... da das ganze Programm zu komplex ist hier mal ein Ausschnitt um mein Problem zu verdeutlichen....

ich hab ein Persistenz- Model (JPA/Hibernate)

Person (ID, Name, List<Bestellung>)
Bestellung (ID, Artikelname, Person) also Bidirektional


und ein Anwendungsmodel

Person (ID, Name, List<Bestellung>)
Bestellung (ID, Artikelname,Person ID)

dazwischen einen Converter....

in dem Anwendungsmodel ist nur eine ID auf das Person- Model referenziert, da ich nicht an jeder Bestellung die ganze Person rumschleifen möchte... (egal wie sinnvoll das jetzt sein mag)

sooo nun mache ich irgendwas in der Anwendungsschicht damit und will es wieder zurückspeichern... nun kommt das Problem :D

da ich ja in der Anwendung nur die ID habe, muss ich beim Konvertieren aber wieder ein volles Objekt zur Persistenz zurück geben, dass das gemerged werden kann .... wenn ich z.b. nur ein Dummy Objekt erstelle, was dessen ID hat wird das überschrieben, was ja auch klar ist .... nun stellt sich mir die Frage, wie ich das Mergen am geschicktesten mache.... mir fällt nur ein für jede Bestellung, die ich mergen will, muss ich per findByKey die Person rausholen und diese dann an die Bestellung klatschen damit das ordentlich gemerged werden kann... das würde auch so funktionieren ... bloß finde ich das irgendwie sehr suboptimal, ... allgemein ist das mit den 2 Model's in dem Fall eher Kacke aber das war die Aufgabe ... daher frage ich, obs einen anderen Weg gibt, eine Bestellung zu Mergen ohne die Person extra aus der DB zu lesen und an das Persistenz Model zu packen.

[EDIT]Hat sich erledigt habs nun gelöst :)[/EDIT]
 
Zuletzt bearbeitet:

pl4gu33

Top Contributor
Du weißt schon den Sinn/Unterschied zwischen JPA und Hibernate? JPA macht defaultmäßig nicht eager, wie kommt darauf?

ja JPA ist ein Standard und Schnittstelle diese von u.a. Hibernate implementiert wird (kannst mich ja verbessern wenns falsch is ;))

und das mit dem EAGER hatte ich damals beim einlesen im irgendnem Forum gelesen,... war mir zu dem Zeitpunkt auch nicht wichtig,... aber mm scheint ja wohl falsch zu sein... dann danke für den Hinweis aber is in meinen kleinen Projekt eh erstmal nicht relevant da durch das Umschaufeln der Zugriff bzw. das Nachladen eh verloren geht und ich andere Objekte hab

Ich beschäftigte mich erst seit einer kurzen Zeit mit dem ganzem Thema (Hibernate,JPA, Server, EE Allgemein, DI, Maven, ANT etc.), da bin ich für jede Hilfe dankbar, is viel Neues/Anderes dabei, was man im Studium nur sehr Oberflächlich/gar nicht gelernt hat^^
 
Zuletzt bearbeitet:
G

Gast2

Gast
Ja JPA ist eine Schnittstelle und Hibernate und EclipseLink sind zum Beispiel Implementierungen davon.

Darum ist normalerweise auch die Implementierungen für den Default Lade Mechanismus zuständig, aber soviel ich weiß ist der LazyLoading. Wenn man Eager will muss man das selber einstellen. Aber man muss sich halt auch klar sein was das bedeutet, nicht das man sich die halbe Datenbank in den Speicher lädt ;). Schon deshalb macht LazyLoading Sinn.
 

Ähnliche Java Themen

Neue Themen


Oben