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.
Neueste Kommentare
Noch keine Kommentare zu EJB Persistenz mit Java SE (3. Teil)
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.