Heim > Backend-Entwicklung > Golang > GORM CreateInBatches mit eingebettetem Strukturfehler

GORM CreateInBatches mit eingebettetem Strukturfehler

WBOY
Freigeben: 2024-02-05 21:27:12
nach vorne
827 Leute haben es durchsucht

带有嵌入式结构错误的 GORM CreateInBatches

Frageninhalt

Ich habe die folgende Struktur (zur besseren Lesbarkeit gekürzt)

type schedule struct {
    id              int  
    userid          int
    user            user    `gorm:"embedded;foreignkey:userid;references:userid"`
}
Nach dem Login kopieren

Und dann ist hier meine Benutzerstruktur (zur besseren Lesbarkeit noch einmal gekürzt):

type user struct {
    id         int
    userid     int
    isactive   bool 
}
Nach dem Login kopieren

Ich erhalte die Werte in der schedule 结构上尝试 createinbatches (如 []schedule )。但是当我这样做时,插入查询还尝试插入 user-Struktur.

Beispiel (Teil des Codes) einfügen:

err := db.transaction(func(tx *gorm.db) error {
    if err := tx.createinbatches(&schedules, len(schedules)).error; err != nil {
        return err //rollback
    }
}
Nach dem Login kopieren

Der Vollständigkeit halber hier die Fehler:

Error Inserting Schedule Batch: Error 1054: Unknown column 'is_active'
in 'field list'
Nach dem Login kopieren

Gibt es ein Tag oder etwas, das ich tun kann, um die Benutzerstruktur aus der Einfügeabfrage wegzulassen? Wenn ich die Abfrage ausgebe, wird sie angezeigt insert into schedule(计划列...,[附加用户结构列])

Ich habe auch das Feldberechtigungs-Tag basierend auf der Dokumentation hier ausprobiert


Richtige Antwort


Das Problem ist, dass Sie sich im schedule 结构中为 user 使用 embedded-Tag befinden. Wenn Sie es entfernen, sollte es wie erwartet funktionieren. Sie können darüber in Dokumente

nachlesen

Deine scheduleStruktur sollte also so aussehen:

type Schedule struct {
    ID              int  
    UserId          int
    User            User `gorm:"foreignKey:UserId;references:UserId"`
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonGORM CreateInBatches mit eingebettetem Strukturfehler. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:stackoverflow.com
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage