JPA Aus 1...n nur current Objekt

s.naujoks

Mitglied
Hallo zusammen,

vielleicht habe ich auf Grund des guten Wetters auch gerade nur eine Denkblockade, bekommen es aber irgendwie nicht auf die Reihe bzw. mache es zu kompliziert

Ich habe eine Entity Person, die 1...n mit der Entity Adressen verknüpft ist. Adressen hat die Felder vom Typ Date gueltigVon, gueltigBis. Ist gueltitigBis Null, dann ist es die aktuelle Adresse. Ist halt umgezogen.

Beim initialisieren des Objektes Person soll nur die aktuelle Adresse geladen werden. Ich denke gerade irgendwie an zwei Lösungen:

1. @transient Adress getCurrentAdress() und über die List iterieren
Was für ein overhead, angenommen er ist 100 mal umgezogen...

2. im Ejb Person findPerson(Integer id).... und ermittelte current Adresse setzen.

Mir scheint 2. am sinnvollsten, hat jemand dazu ein Beispiel?
 

BuckRogers

Bekanntes Mitglied
Hi,

du hast doch wahrscheinlich eine Liste mit Adressen. Ist denn nicht automatisch der letzte Eintrag der Aktuelle?

Grüße
 

s.naujoks

Mitglied
Hi Buck,

klar könnte ich mir die currentAdresse aus der Gesamtliste ziehen, indem ich über size()... das letzte Object ziehe. Ich würde das Objekt Person nur gerne "verschlanken", indem zuerst einmal nur die aktuelle Adresse an den Client geliefert wird und nicht der "historische overhead". Hintergrund ist Performance.

Idee?
 

mrBrown

Super-Moderator
Mitarbeiter
Willst du den Overhead von DB->Anwendung oder von Anwendung->Client nicht mitschleppen?

Im ersten Fall die Anfrage an die Datenbank anpassen, sodass nur die aktuellste Adresse in der Person landet, würde ich allerdings nicht so lösen. Man sollte auch nicht davon ausgehen, das die aktuellste zwingend die letzte ist, zumindest nicht, wenn nicht extra sortiert wird.

Im zweiten Fall halt nur das letzte Element mit last()/get(size()-1)/oä holen und an den Client schicken. Selbst der Overhead durch's suchen dürfte verschwindend gering sein, das würde ich aufgrund der Einfachheit bevorzugen.
 

BuckRogers

Bekanntes Mitglied
Ja dann am besten nen Query der gleich nach der Adresse mit null-Eintrag beim 'gueltigBis' sucht und dir dann halt nur die Zeile zurückgibt.
 

Ähnliche Java Themen


Oben