Unidirektionale OneToMany-Beziehung ohne JoinTable

8

Um eine fremde Schlüsselspalte (keine JoinTable) zu erreichen, wenn eine unidirektionale OneToMany-Beziehung abgebildet wird, befolge ich die Schritte gemäß der Referenzdokumentation von Grails (Version 2.2.3), Abschnitt 6.5.2.1 OneToMany-Mapping, das

angibt
  

Bei unidirektionalen Zuordnungen muss der Fremdschlüssel in der Assoziation selbst angegeben werden. Wenn zum Beispiel eine unidirektionale OneToMany-Beziehung zwischen Person (ersetzt durch Eins) und Adresse (ersetzt durch Viele) gegeben wird, ändert der folgende Code den Fremdschlüssel in der Viele-Tabelle

%Vor%

Allerdings, wenn ich renne

%Vor%

Ich komme in die Konsole

%Vor%

Hinweis Grails erstellen eine JoinTable namens one_many. Also, meine Frage: Es ist ein Bug oder etwas anderes? Was soll ich tun, um die JoinTable loszuwerden?

Auch wenn ich etwas wie

verwende %Vor%

wie hier hervorgehoben hier , d Erhalten Sie die gleiche Ausgabe

    
Arthur Ronald 05.08.2013, 05:13
quelle

2 Antworten

10

Sie sind fast da, Sie haben zwei Hälften des Mappings, aber Sie brauchen beides, damit es richtig funktioniert. Es ist kein gut dokumentiertes Feature, aber ich habe es schon vorher benutzt und es funktioniert definitiv (z. B. keine Join-Tabelle). Also in deiner One-Klasse,

%Vor%

HINWEIS: Es ist wahrscheinlich eine gute Idee, Grails zu beenden, zu bereinigen und neu zu starten, wenn Sie Mapping-Änderungen vornehmen. Ich habe viele Stunden damit verloren, meinen Kopf zu schlagen, wenn ein einfaches Grillen die Lösung war.

Sie könnten auch belongsTo ohne die Rückwärtsreferenz in Ihrer Many-Klasse hinzufügen und hätten trotzdem eine echte uni-directional, aber mit dem zusätzlichen Vorteil der kaskadierenden Aktion (in der One-Klasse) ) wenn es etwas ist, das du brauchst.

    
ikumen 05.08.2013, 18:02
quelle
0

Das folgende Setup wird das umsetzen, worüber Sie sprechen:

%Vor%

Wenn Sie viele löschen möchten, wenn sie aus der Sammlung entfernt werden, fügen Sie Folgendes hinzu:

%Vor%     
James Kleeh 05.08.2013 13:05
quelle

Tags und Links