m:n Entites long running session

  • Hi

    Ich habe von Java leider 0 Ahnung - aber mich würde interessieren wie es da gelöst wird - hab durch googlen leider nix gefunden ...

    Client - Server Szenario - Kommunikation RPC/SOAP

    Angenommen ich habe ein Entity X mit 5 m:n Abhängigkeiten (z.B. Kunde mit Bestellung, Lieferadressen, Bezahlungsdaten, ...). Das zeige ich jetzt auf einer Seite an (egal ob Web oder Rich Client). Jetzt füge ich eine Lieferadresse hinzu, ändere eine andere Lieferadresse und lösche eine Bezahlungsmöglichkeit. Nun will ich das doch nicht speichern und schließe den Dialog mit "Speichern -> Nein"

    Meine Frage: Kann sich Hibernate (oder eine andere Persistence Technik in Java) Änderungen in einem Entity + Abhängigkeiten merken? D.h. klickt der User auf Speichern schicke ich das Ding + Änderungsdaten an der Server - klickt er auf "Nein" - verwerfe ich es einfach

    Danke
    LG

  • Mal sehen, ob ich das richtig verstehe:

    Du hast einen Kunden und dieser hat z.B. eine Liste von Bestellungen.
    Jetzt willst du, dass wenn du den Kunden persistierst, auch die Bestellungen gespeichert werden. Wenn es das ist, dann suche mal nach „cascade“. Damit kannst du einstellen, wie Hibernate mit referenzierten Entities verfahren soll.

    Was ich nicht verstehe ist, was du mit long running session bzw. mit „Änderungen […] merken“ meinst?

  • Danke für die Antwort. Ne meinte was anderes - genauer gesagt "persistence ignorance"

    Ich versuche es anhand eines Workflows zu erklären - Nachwievor ein Entity Baum (Kunde mit mehreren Bestell Items, mehreren Lieferadressen, mehreren Kontodaten)

    1. Client macht Anfrage an Server - von mir aus "GetCustomerById(323)"
    2. Server liefert dem Client ein XML welches Kundendaten + alle m:n Abhängigkeiten enthält
    3. Client führt jetzt mehrere Änderungen an dem Datensatz durch - auch an den m:n Abhängigkeiten. In dieser Zeit kommunziert er nicht mit dem Server
    4. Nun hat der Client 2 Möglichkeiten:
    4.1 Änderungen verwerfen (betrifft den Server nicht wirklich)
    4.2 Client ruft "SaveCustomer" auf und übergibt Datensatz (inkl. m:n Abhängigkeiten)
    4.2.1 Server generiert nun einen Batch aus meheren Befehlen (z.B. da sich die Lieferadresse geändert hat, eine gelöscht wurde und eine neue hinzugefügt wurde)

    Ich hoffe, ich habs jetzt besser erklärt ;)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!