Moin,
ich habe mal eine Frage für ein Vorgehen in Bezug auf die Kommunikation mit der Datenbank bei 3-Tier Anwendungen (hier im Speziellen EJB->Spring->Hibernate).
Ich sende vom Client (Swing) meine ValueObjects (z.B. Rechnungskopf + -positionen) an das EJB, die Daten werden vom EJB auf dem Server in die Datenbank gespeichert. Nun hab ich das Problem, dass auf dem Client ein anderer Stand vorhanden ist, als die persistenten Daten auf dem Server. (z.b. gesetzter PK, Versionsnr des Datensatzes, und weitere Systemfelder).
Wie ich ich da am besten bei der synchronisation der Daten vor? Schicke ich das ganze Objekt (Kopf + Positionen) komplett an den Client zurück und schreibe eine Klasse, die per Reflection alle getter und setter aufruft und somit meine Clientobjekte mit den aktuellen vom Server erhaltenen Objekten synchroniersiert?
Oder gibt es dafür elegantere Lösungen?
Hab bisher im Internet immer nur Beispiele gehen, bei denen nur die ID zurückgeliefert wurde. Aber es gibt ja meistens mehrere Systemfelder und bei größeren Datenstrukturen (Kopf/Positionen) will man ja nicht jede Position einzeln zum Server schicken, zumal es ja in einer eigenen Transaktion gespeichert werden soll.
Besten Dank schonmal.
ich habe mal eine Frage für ein Vorgehen in Bezug auf die Kommunikation mit der Datenbank bei 3-Tier Anwendungen (hier im Speziellen EJB->Spring->Hibernate).
Ich sende vom Client (Swing) meine ValueObjects (z.B. Rechnungskopf + -positionen) an das EJB, die Daten werden vom EJB auf dem Server in die Datenbank gespeichert. Nun hab ich das Problem, dass auf dem Client ein anderer Stand vorhanden ist, als die persistenten Daten auf dem Server. (z.b. gesetzter PK, Versionsnr des Datensatzes, und weitere Systemfelder).
Wie ich ich da am besten bei der synchronisation der Daten vor? Schicke ich das ganze Objekt (Kopf + Positionen) komplett an den Client zurück und schreibe eine Klasse, die per Reflection alle getter und setter aufruft und somit meine Clientobjekte mit den aktuellen vom Server erhaltenen Objekten synchroniersiert?
Oder gibt es dafür elegantere Lösungen?
Hab bisher im Internet immer nur Beispiele gehen, bei denen nur die ID zurückgeliefert wurde. Aber es gibt ja meistens mehrere Systemfelder und bei größeren Datenstrukturen (Kopf/Positionen) will man ja nicht jede Position einzeln zum Server schicken, zumal es ja in einer eigenen Transaktion gespeichert werden soll.
Besten Dank schonmal.