Heim >Backend-Entwicklung >Golang >Gorm-Beziehungsfehler: Wie behebt man die Notwendigkeit, einen gültigen Fremdschlüssel für Beziehungen zu definieren?
Diagnose und Lösung von Gorm-Beziehungsfehlern
Beim Zugriff auf eine Gorm-Datenbank kann es zu einer Fehlermeldung kommen, die besagt: „Es muss eine gültige Fremdsprache definiert werden.“ Schlüssel für Beziehungen oder es muss die Valuer/Scanner-Schnittstelle implementiert werden. Dieses Problem tritt auf, wenn die Fremdschlüsselbeziehungen zwischen Datenmodellen und den entsprechenden Datenbanktabellen nicht übereinstimmen.
In Ihrem Fall tritt der Fehler für die Beziehung zwischen ConfigurationDescription und LocationDescription auf. Das Feld „Location“ in „ConfigurationDescription“ scheint korrekt deklariert zu sein, wobei die Attribute „foreignKey“ und „references“ festgelegt sind. Bei näherer Betrachtung wird jedoch klar, dass die Tags umgekehrt sind.
Für ein Belongs-To-Beziehungsmuster sollte das ForeignKey-Attribut das modelllokale Schlüsselfeld benennen, das mit der fremden Entität verknüpft ist, und die Referenzen Das Attribut sollte den primären oder eindeutigen Schlüssel der fremden Entität benennen. In diesem Fall sollte der ForeignKey LocationID sein und die Referenzen sollten ID sein.
Um das Problem zu beheben, ändern Sie die ConfigurationDescription-Struktur wie folgt:
type ConfigurationDescription struct { ID int `json:"configurationID"` Name string `json:"name"` IsActive bool `json:"isActive"` LocationID int `json:"-" gorm:"foreignKey:LocationID"` Location LocationDescription `json:"location,omitempty" gorm:"references:ID"` }
Mit diesen Anpassungen wird der Foreign Die Schlüsselbeziehung zwischen ConfigurationDescription und LocationDescription sollte korrekt hergestellt werden, damit Gorm die Daten wie erwartet laden kann.
Das obige ist der detaillierte Inhalt vonGorm-Beziehungsfehler: Wie behebt man die Notwendigkeit, einen gültigen Fremdschlüssel für Beziehungen zu definieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!