Ich habe Probleme beim Einrichten von JPA-Mappings für einige Entitäten. Ich habe eine übergeordnete Entität wie folgt definiert.
%Vor%Ich habe dann eine untergeordnete Entität mit einem zusammengesetzten Schlüssel und einen Fremdschlüssel für den Primärschlüssel dieser Tabelle wie folgt:
%Vor%Ich weiß, dass die untergeordnete Entität falsch ist, aber ich bin mir nicht sicher, wie ich dies einrichten soll, um eine zusammengesetzte PK zu haben. Ich weiß, dass ich eine PK-Klasse einrichten muss, aber ich bin nicht sicher, wie das zu tun ist, wenn ein Feld ein Fremdschlüssel für die Elternklasse ist. Und wenn das einmal eingerichtet ist, wie würde der Elternteil auf die untergeordnete Entität verweisen?
Jede Hilfe ist willkommen.
Dies wird durch JPA 2-Spezifikation Abschnitt 2.4.1, "Primäre Schlüssel entsprechend Abgeleitete Identitäten ". Der Abschnitt enthält zwei Beispiele, die direkt auf Ihr Problem anwendbar sind.
Wie in der Spezifikation beschrieben, gibt es zwei Möglichkeiten, den Schlüssel der untergeordneten Entität in diesem Fall darzustellen:
@IdClass
@EmbeddedId
Hier ist eine grobe Skizze des Weges EmbeddedId
. Ich habe EmbeddedId
willkürlich gewählt, aber die Wahl zwischen IdClass
und EmbeddedId
ist signifikant. Sie könnten anders wählen.
Die übergeordnete Entität benötigt eine Änderung: Das userDetails
-Attribut mappedBy
sollte "id.aihId" lauten. Ich denke, das ist es, aber ich habe die Entitäten nicht genau so benutzt. Könnte etwas verpasst haben ... bitte poste, wenn du Fehler siehst.
Ich hatte auch das gleiche Problem und folgte dieser Antwort, aber es speichert die untergeordnete Entität nicht mit der übergeordneten Entität. Hier sind die Änderungen, die ich gemacht habe und es funktioniert gut. Nehmen Sie unten Änderungen vor -
%Vor% Beim Speichern der übergeordneten Entity setzen Sie das übergeordnete Objekt in den zusammengesetzten Schlüssel wie id.setInstance(parent entire obj)