Betrachtet man nun die Klasse Version, sieht man den umgekehrten Fall der @OneToMany-Beziehung zu Application sowie eine weitere kaskadierende Sammlung, in diesem Fall für ein Set von Lizenzen.
Folgt man diesen Verknüpfungen, kommt man zur Klasse License. Hier endet die Kaskadierung.
Es gibt noch eine weitere Sammlung, die die Anwender repräsentiert. Das Mapping zur Version geschieht über eine @ManyToOne-Annotation.
Nun gelangt man zum wichtigsten Mapping in diesem Beispiel. Mehrere Lizenzen können mehreren Anwendern zugeordnet werden, hier verwendet man die @ManyToMany-Schreibweise.
Mit @JoinTable kann man @ManyToMany kontrollieren und die Standardwerte überschreiben. Der Parameter name enthält die Bezeichnung der Tabelle, die zum Herstellen der n:n-Verbindung benötigt wird. Der Parameter joinColumns setzt nun eine Seite des Joins. Die Klammern um das Argument sind notwendig, da es vom Typ Array ist, auch wenn nur ein Wert übergeben wird. Der Wert selbst ist ein @JoinColumn, der die Spaltenbezeichnung in der Datenbank definiert. Dieselbe Syntax findet man im inverseJoinColumns-Parameter, in diesem Fall jedoch für die andere Seite der n:n-Verbindung.
Und schließlich die Klasse User. In diesem Beispiel wird angenommen, dass Anwender durch ihren Namen eindeutig identifiziert werden. Deshalb wird dieser als eindeutiger Bezeichner verwendet anstatt @GeneratedId, um eine eindeutige ID zu erzeugen, die in den anderen Entity-Klassen verwendet wird.
Nun wird das Mapping zu den Lizenzen näher betrachtet, die andere Seite der n:n-Beziehung, das heißt wieder @ManyToMany.
Hier verwendet man den Parameter mappedBy, um auf die Eigenschaft „users“ in der Klasse Licence zu verweisen. Dies ermöglicht es der Persistenz-Engine, @JoinTable zu verwenden, das mit License spezifiziert wurde.
Beim Online-Gaming kommt es nicht nur auf das eigene Können an. Auch die technischen Voraussetzungen…
Fast jedes zweite Unternehmen bietet keinerlei Schulungen an. In den übrigen Betrieben profitieren oft nur…
Huawei stellt auf der Connect Europe 2024 in Paris mit Xinghe Intelligent Network eine erweiterte…
Höchste Zeit für eine schnelle Kupfer-Glas-Migration. Bis 2030 soll in Deutschland Glasfaser flächendeckend ausgerollt sein.
Schon im April 2025 soll Android 16 den Status Plattformstabilität erreichen. Entwicklern gibt Google danach…
Die Hintermänner setzen KI-Chatbot-Tools als Köder ein. Opfer fangen sich den Infostealer JarkaStealer ein.