J
JoeMay
Gast
Hallo liebe Gemeinde,
ich habe eine kleine Frage bezüglich des Designs meiner Business-Schicht (habe damit eigentlich kaum Erfahrung, da ich selbst noch in die Schule gehe und keinerlei Ausbildung habe
)
Nehmen wir an ich habe eine EE-Applikation mit web-Modul (basierend auf JSF und Klassen für den Zugriff auf die EJBs) und einem EJB-Modul mit der Business- und Peristenzschicht.
Nehmen wir außerdem an, ich habe unter anderem eine Entity-Klasse für eine Bestellung (Fields: Long id, String kunde, Anschrift adresse, @Version ...) (stark vereinfacht natürlich!). Dann habe ich noch eine EJB (stateless) mit den Methoden addBestellung (persistiert Bestellung und macht noch einige andere Dinge mit dieser), editBestellung (zum Bearbeiten einer Bestellung, zum Beispiel Anschrift ändern, etc. ).
Jetzt stellt sich mir die Frage, ob ich die web-Schicht direkt mit den Entitys arbeiten lassen soll und diese dann, nachdem sie bearbeitet wurden, den Bean-Methoden übergeben soll, oder ob ich in den Bean-Methoden als Parameter die neuen Werte schreiben soll (void addBestellung(String kunde, String straße, String hausnummer, String ort, int plz)).
Bei letzterem gibt es das Problem mit dem möglichen Überschreiben von Dateien (Nutzer A überschreibt die gerade von Nutzer B geänderten Daten am Datensatz D, da A nichts von der Änderung wusste (Version-Field in den Entities).
Bei ersteren Methode müsste ich dann noch ggf. Änderungen am Datensatz rückgängig machen, für die der Nutzer keine Editierrechte hat. Dies entfällt durch die @RolesAllowed-Annotations und den richtigen (im Datensatz editierbaren) Parametern.
Ich hoffe, ihr könnt mich da in die richtige Richtung dirigieren
ich habe eine kleine Frage bezüglich des Designs meiner Business-Schicht (habe damit eigentlich kaum Erfahrung, da ich selbst noch in die Schule gehe und keinerlei Ausbildung habe
Nehmen wir an ich habe eine EE-Applikation mit web-Modul (basierend auf JSF und Klassen für den Zugriff auf die EJBs) und einem EJB-Modul mit der Business- und Peristenzschicht.
Nehmen wir außerdem an, ich habe unter anderem eine Entity-Klasse für eine Bestellung (Fields: Long id, String kunde, Anschrift adresse, @Version ...) (stark vereinfacht natürlich!). Dann habe ich noch eine EJB (stateless) mit den Methoden addBestellung (persistiert Bestellung und macht noch einige andere Dinge mit dieser), editBestellung (zum Bearbeiten einer Bestellung, zum Beispiel Anschrift ändern, etc. ).
Jetzt stellt sich mir die Frage, ob ich die web-Schicht direkt mit den Entitys arbeiten lassen soll und diese dann, nachdem sie bearbeitet wurden, den Bean-Methoden übergeben soll, oder ob ich in den Bean-Methoden als Parameter die neuen Werte schreiben soll (void addBestellung(String kunde, String straße, String hausnummer, String ort, int plz)).
Bei letzterem gibt es das Problem mit dem möglichen Überschreiben von Dateien (Nutzer A überschreibt die gerade von Nutzer B geänderten Daten am Datensatz D, da A nichts von der Änderung wusste (Version-Field in den Entities).
Bei ersteren Methode müsste ich dann noch ggf. Änderungen am Datensatz rückgängig machen, für die der Nutzer keine Editierrechte hat. Dies entfällt durch die @RolesAllowed-Annotations und den richtigen (im Datensatz editierbaren) Parametern.
Ich hoffe, ihr könnt mich da in die richtige Richtung dirigieren