Heim > Backend-Entwicklung > Golang > Warum gibt Gorm trotz scheinbar korrekter Modellbeziehungen einen Fremdschlüsselfehler aus?

Warum gibt Gorm trotz scheinbar korrekter Modellbeziehungen einen Fremdschlüsselfehler aus?

Susan Sarandon
Freigeben: 2024-11-22 12:24:15
Original
230 Leute haben es durchsucht

Why Does Gorm Throw a Foreign Key Error Despite Seemingly Correct Model Relationships?

Fremdschlüsselfehler in der Gorm-Beziehung

Beim Versuch, ein Modell aus einer Datenbank mit Gorm abzurufen, erscheint die Fehlermeldung: „Ungültiges Feld.“ für den Feldstandort von struct models.ConfigurationDescription gefunden, muss ein gültiger Fremdschlüssel für Beziehungen definiert werden oder es muss die Valuer/Scanner-Schnittstelle implementiert werden.“ Dieser Fehler tritt auf, obwohl die Datenmodelle scheinbar den Gorm-Dokumentationsrichtlinien folgen.

Die angegebenen Datenmodelle definieren eine Belongs-To-Beziehung zwischen ConfigurationDescription und LocationDescription. Allerdings scheinen das Foreign Key-Tag und das References-Tag in der ConfigurationDescription-Struktur vertauscht zu sein.

In einem Belongs-To-Beziehungsmuster sollte das ForeignKey-Tag das modelllokale Schlüsselfeld benennen, das mit der Fremdentität verknüpft wird , während das Referenz-Tag den primären oder eindeutigen Schlüssel der fremden Entität benennen sollte.

Um das Problem zu beheben, sollten die Tags in der ConfigurationDescription-Struktur als ausgetauscht werden folgt:

type ConfigurationDescription struct {
    ID         int                 `json:"configurationID"`
    Name       string              `json:"name"`
    IsActive   bool                `json:"isActive"`
    LocationID int                 `json:"-"`
    Location   LocationDescription `json:"location,omitempty" gorm:"foreignKey:ID;references:LocationID"`
}
Nach dem Login kopieren

Wenn diese Tags korrigiert sind, sollte Gorm die Beziehung zwischen den beiden Modellen richtig erkennen und die Daten erfolgreich abrufen, ohne dass der Fremdschlüsselfehler auftritt.

Das obige ist der detaillierte Inhalt vonWarum gibt Gorm trotz scheinbar korrekter Modellbeziehungen einen Fremdschlüsselfehler aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage