ONETOONE-Beziehung für eine nicht primäre Schlüsselsäule
-
21-12-2019 - |
Frage
Ich habe ein Problem, wenn ich eine Entität abfragen kann, die eine OneToone-Beziehung mit einem anderen hat.Dies ist das Szenario:
testdaten:
generasacodicetagpre.
aufruf:
generasacodicetagpre.Nach der Devokation werden die Hibernate's Protokolle angezeigt:
generasacodicetagpre. Wie Sie sehen, ist der Join falsch, da Benutzer mit Benutzern vergleicht.Engesprobte.> ohne seine entsprechende
Alle Ideen darüber, wie ich es beheben kann?
vielen dank !!
Lösung
Ich denke, Sie sollten Ihr Datamodel überdenken.Die Beziehung zwischen Benutzer und Person sieht eher aus wie eine der Vererbung aus.
für das Problem mit Ihren Zuordnungen, wie sie stehen, hier für eine weitere Distreute sehen:
jpaAnbieter: Warum arbeiten Beziehungen / FKS an Non-PK-Säulen in Ruhe und EclipSelink?
Erlaubt die JPA-Spezifikation Verweise aufNicht-primäre Schlüsselsäulen?
Andere Tipps
streng genommen, Die JPA-Spezifikation tutZulässige Verweise auf nicht-primäre Schlüsselsäulen .Es kann in einigen JPA-Implementierungen arbeiten, aber es ist nicht richtig.
Ich denke jedoch, dass Sie dies tun können, indem Sie die Beziehung bidirektional machen und die Seite mit dem nicht-primären Schlüssel besitzen:
generasacodicetagpre.Ich habe das nicht wirklich versucht, also caveat hackor .