Abbildung eines Primary Key auf einen Composite Key in JPA
Автор: vlogize
Загружено: 2026-01-13
Просмотров: 0
Erfahren Sie, wie Sie Primärschlüssel in JPA für Spring Boot-Anwendungen effektiv auf zusammengesetzte Schlüssel abbilden, um reibungslose Entitätsbeziehungen in Ihrer Datenbank sicherzustellen.
---
Dieses Video basiert auf der Frage https://stackoverflow.com/q/62385577/ gestellt von dem Nutzer 'Raj Khot' ( https://stackoverflow.com/u/5305604/ ) sowie auf der Antwort https://stackoverflow.com/a/62385781/ bereitgestellt von dem Nutzer 'Simon Martinelli' ( https://stackoverflow.com/u/1045142/ ) auf der Website 'Stack Overflow'. Vielen Dank an diese großartigen Nutzer und die Stackexchange-Community für ihre Beiträge.
Besuchen Sie diese Links, um den Originalinhalt und weitere Details zu sehen, z. B. alternative Lösungen, aktuelle Entwicklungen zum Thema, Kommentare, Versionsverlauf usw. Der ursprüngliche Titel der Frage lautete beispielsweise: Map primary key to composite key in JPA
Außerdem steht der Inhalt (außer Musik) unter der Lizenz CC BY-SA https://meta.stackexchange.com/help/l...
Der ursprüngliche Fragenbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ), und der ursprüngliche Antwortbeitrag steht unter der Lizenz 'CC BY-SA 4.0' ( https://creativecommons.org/licenses/... ).
Falls Ihnen irgendetwas auffällt oder Unstimmigkeiten bestehen, schreiben Sie mir bitte an vlogize [AT] gmail [DOT] com.
---
Abbildung eines Primary Key auf einen Composite Key in JPA: Eine Schritt-für-Schritt-Anleitung
Beim Arbeiten mit JPA (Java Persistence API) und Hibernate in Spring Boot-Anwendungen stehen Entwickler oft vor der Herausforderung, Entitätsbeziehungen effektiv zu verwalten. Ein häufiges Szenario ist die Abbildung eines Primary Keys auf einen zusammengesetzten Schlüssel (Composite Key). In diesem Leitfaden erklären wir, wie Sie dies anhand eines praktischen Beispiels mit zwei Tabellen erreichen: user und user_session.
Das Problem
Angenommen, Sie haben zwei Tabellen:
User-Tabelle: Diese Tabelle besitzt einen Primärschlüssel, user_id, der jeden Nutzer eindeutig identifiziert.
User Session Tabelle: Diese Tabelle verwendet einen zusammengesetzten Schlüssel, der aus zwei Feldern besteht: session_intime und user_id. Der user_id ist hier ein Fremdschlüssel, der auf die user_id in der User-Tabelle verweist.
Die Herausforderung besteht darin, diese Entitäten in JPA korrekt abzubilden, um ihre Beziehung zu reflektieren und gleichzeitig sicherzustellen, dass die Anwendung fehlerfrei kompiliert.
Das ursprüngliche Entity-Design
So könnten die anfänglichen Entity-Klassen aussehen:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Die Lösung
Um den user_id aus der User-Tabelle korrekt auf den zusammengesetzten Schlüssel in der User Session-Tabelle abzubilden, gehen Sie wie folgt vor:
Schritt 1: Ändern des User-Entitäts
Im User-Entity müssen Sie sicherstellen, dass die @ OneToMany-Beziehung richtig gesetzt ist. Das Attribut mappedBy ist in diesem Kontext nicht nötig. Stattdessen verwenden wir direkt das @ JoinColumn:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 2: Überprüfen der UserSession-Entität
Stellen Sie sicher, dass Ihre UserSession-Entität korrekt @ EmbeddedId für den zusammengesetzten Schlüssel verwendet:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Schritt 3: Definieren der Composite Key-Klasse
Ihre Klasse UserSessionPK sieht gut aus, stellen Sie jedoch sicher, dass die Benennung und Typen korrekt sind und dem Datenbankschema entsprechen:
[[Siehe Video, um diesen Text oder Codeausschnitt anzuzeigen]]
Fazit
Durch diese Anpassungen sollten Sie in der Lage sein, den user_id der User-Tabelle erfolgreich auf den zusammengesetzten Schlüssel in der User Session-Tabelle abzubilden, ohne Kompilierungsfehler zu erhalten. JPA kann anfangs komplex erscheinen, aber sobald Sie die Beziehungen und Mappings verstehen, wird die Verwaltung Ihres Datenmodells erheblich einfacher.
Bei weiteren Fragen oder wenn Sie zusätzliche Unterstützung mit JPA und Hibernate benötigen, können Sie sich gerne melden!
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: