Ich verwende Play Framework (Java Flavor) für ein Projekt. In diesem Projekt habe ich zwei Modelle, für die ich eine OneToOne
Beziehung erstellen möchte.
Ich habe ein User
Modell und ein UserLegalName
Modell. Ich möchte, dass jedes User
ein UserLegalName
-Modell hat.
User
Modellcode
UserLegalName
Modellcode
Das Problem besteht darin, dass die User
und die UserLegalName
nicht dazu neigen, "verwandt" zu werden: < br>
Die Spalte user_user_id
ist immer NULL
. Ich habe versucht, JoinColumn(name = "user_id")
für die User
in UserLegalName
, aber dies funktioniert auch nicht
Nachdem Sie @Sivakumar beantwortet und meinen Code korrigiert haben, speichert UserLegalName
nun korrekt
Wenn ich jedoch versuche, die UserLegalName
für einen Benutzer zu erhalten, wird immer null
Was zurückgibt
%Vor% Sie können fetch=FetchType.EAGER
zur Annotation OneToOne
im User
-Modell hinzufügen und das UserLegalName
jedes Mal holen. In Wirklichkeit ist das User
-Modell jedoch viel komplizierter. Es enthält viel mehr Beziehungen.
Gibt es einen anderen Weg, dies zu tun? Wenn Sie den Abruf-Typ als EAGER
beibehalten, könnte dies zu ineffizienten Abfragen führen (EX: Ich möchte nur die E-Mails des Benutzers in einer separaten Tabelle, aber es fragt auch die Tabelle User_Legal_Name
ab)
Ich habe beide Modelle verwendet, wie Sie im obigen Link gepostet und erfolgreich getestet. Da @Andrei in seinem Kommentar erwähnte, dass das Problem nicht im Mapping liegt, sollte es die Art sein, wie man sie speichert. Im Folgenden sind die Codeschnipsel, die ich zum Testen verwendet habe.
Benutzer
%Vor%UserLegalName
%Vor%Controller
%Vor%Routen
%Vor%Tags und Links sql java jpa database playframework