„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie werden GORM-Strukturfelder mit Abfragespaltennamen abgeglichen?

Wie werden GORM-Strukturfelder mit Abfragespaltennamen abgeglichen?

Veröffentlicht am 08.11.2024
Durchsuche:205

How to Match GORM Struct Fields with Query Column Names?

Strukturfeldbenennung beim GORM-Abfragescannen

Wenn Sie versuchen, die Ergebnisse einer Abfrage in eine benutzerdefinierte GORM-Struktur zu scannen, ist dies unbedingt zu beachten die Konvention, die GORM für die Feldbenennung anwendet. Standardmäßig erwartet GORM, dass die Strukturfelder mit den Spaltennamen im Abfrageergebnis übereinstimmen.

Um das Problem mit den Standardwerten zu beheben, versuchen Sie die folgenden Ansätze:

Option 1: Öffentliche Felder und richtige Benennung

  • Stellen Sie sicher, dass Ihre Strukturfelder öffentlich sind und dieselben Namen wie die Spaltennamen im Abfrageergebnis verwenden. Zum Beispiel:
type Res struct {
    ID     int
    Number int
    UserID int
}

Option 2: Benutzerdefinierte Spaltenzuordnungen

Alternativ können Sie explizite Spaltenzuordnungen mithilfe des gorm:"column"-Tags für jedes Feld angeben. Dadurch können Sie einen anderen Namen für das Feld definieren und gleichzeitig den ursprünglichen Spaltennamen im Abfrageergebnis beibehalten. Zum Beispiel:

type res struct {
    id int      `gorm:"column:id"`
    number int  `gorm:"column:number"`
    user_id int `gorm:"column:user_id"`
}

Durch die Implementierung einer dieser Optionen sollten Sie in der Lage sein, die Abfrageergebnisse erfolgreich in Ihre benutzerdefinierte GORM-Struktur zu scannen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3