JPA Aus 1...n nur current Objekt

Dieses Thema JPA - Aus 1...n nur current Objekt im Forum "Data Tier" wurde erstellt von s.naujoks, 5. Mai 2016.

Thema: Aus 1...n nur current Objekt Hallo zusammen, vielleicht habe ich auf Grund des guten Wetters auch gerade nur eine Denkblockade, bekommen es aber...

  1. 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?
     
  2. Vielleicht helfen dir diese Java-Grundlagen weiter --> *Klick*
  3. Hi,

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

    Grüße
     
  4. 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?
     
  5. 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.
     
  6. 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.
     
  7. KOSTENLOSES Java-Grundlagen Training im Wert von 39 € Sichere dir hier den kostenlosen Zugriff auf umfangreiches Java-Know How und starte richtig durch!