Scannen verschachtelter Strukturen mit SQLX
Beim Versuch, Abfrageergebnisse mit SQLX in verschachtelte Strukturen zu scannen, ist es wichtig, den richtigen Ansatz zu verstehen.
Im bereitgestellten Beispiel tritt ein Typkonfliktfehler auf, weil die Adressstruktur nicht korrekt in die Kundenstruktur eingebettet ist. Um dieses Problem zu beheben, ist eine Einbettung erforderlich.
Eingebettete Strukturen ermöglichen den Zugriff auf die eingebetteten Felder, ohne dass ihnen der Name des eingebetteten Typs vorangestellt werden muss. Dies vereinfacht den Feldzugriff und stellt sicher, dass Felder aus der eingebetteten Struktur beim Scannen von Abfrageergebnissen korrekt ausgefüllt werden.
type Customer struct { Id int Name string Address // Embedded struct without tags } type Address struct { Street string `db:"street"` City string `db:"city"` }
Durch die Einbettung der Adressstruktur weist SQLX automatisch Werte aus zu Abfrageergebnis in die entsprechenden Felder basierend auf ihren Datenbank-Tags.
customer := models.Customer{} err := db.Get(&customer, `select * from users where>
Beachten Sie das Durch das Einbetten der Adressstruktur wird die JSON-Ausgabe reduziert und das verschachtelte Adressobjekt entfernt. Um die verschachtelte Struktur beizubehalten, sollten Sie eine Typkonvertierung in Betracht ziehen, um die Felder wieder der ursprünglichen Struktur zuzuordnen.
Das obige ist der detaillierte Inhalt vonWie scanne ich verschachtelte Strukturen mit SQLX korrekt in Go-Strukturen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!