EJB Persistenz mit Java SE (3. Teil)

Bei der in diesem Artikel verwendeten Beispielanwendung, die hier als Download zur Verfügung steht, geht es um eine Lizenzverwaltung. Die Anforderungen für dieses Beispiel sind wie folgt definiert: Viele Anwendungen sind im Einsatz, jede Anwendung in unterschiedlichen Versionen, jede Version wiederum mit einer oder mehreren Lizenzen. Auf der anderen Seite stehen die Anwender, die diesen Lizenzen zugeordnet werden können. Es soll nun eine Anwendung erstellt werden, mit der alle diese Elemente verwaltet werden können.

Vorangegangene Artikel:

Zuerst werden die Entities betrachtet. Sie sind als separates Paket erstellt, anstatt Bestandteil des Anwendungscodes zu sein. Es lohnt sich, auf diese Weise vorzugehen – in größeren Projekten kann man so die Entities als eigenes Projekt behandeln, was die Wiederverwendung in anderen Projekten vereinfacht. In der Beispielanwendung wurden vier Entities erzeugt, Application, Version, Licence und User. Die Besonderheiten der einzelnen Entities werden nun näher betrachtet.

In der Klasse Application gibt es eine 1:n-Beziehung zur Klasse Version. Im Folgenden ein Ausschnitt der Application-Methode, die Eigenschaften id und name werden übersprungen, da diese dem entsprechen, was bisher besprochen wurde.

Der mappedBy-Parameter wurde in den vorangegangenen Artikeln besprochen. Neu ist der Parameter cascade, der es der Persistenz-Engine ermöglicht, Operationen durchzuleiten und andere Tabellen in der Datenbank zu beeinflussen. Als Voreinstellung gibt es keine Kaskadierung, so dass Änderungen an einer Sammlung erfordern, dass der Inhalt der Sammlung explizit verwaltet wird. Wenn man die anderen Werte von CascadeType betrachtet, kann man die möglichen Operationen erkennen: ALL, PERSIST, MERGE, REMOVE, REFRESH. So werden mit der Einstellung CascadeType.PERSIST beispielsweise nur persistierende Objekte kaskadiert. Wenn eine neue Instanz einer Version der Versionsliste hinzugefügt wird, dann würde eine Aktualisierung der Instanz von Application durch Kaskadierung die neue Version in der darunterliegenden Datenbank speichern. CascadeType.MERGE wendet dieselbe Regel auf Updates und CascadeType.REMOVE auf Löschen innerhalb der Sammlung an. CascadeType.REFRESH löst das erneute Einlesen der Entitäten aus der Datenbank aus.

Page: 1 2 3 4

ZDNet.de Redaktion

Recent Posts

KI-gestütztes Programmieren bringt IT-Herausforderungen mit sich

OutSystems-Studie: 62 Prozent der Befragten haben Sicherheits- und Governance-Bedenken bei Softwareentwicklung mit KI-Unterstützung.

8 Stunden ago

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

4 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

4 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

4 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

4 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

5 Tagen ago