我有以下結構(為了可讀性而被截斷)
type schedule struct { id int userid int user user `gorm:"embedded;foreignkey:userid;references:userid"` }
然後是我的 user 結構(再次為了可讀性而被截斷):
type user struct { id int userid int isactive bool }
我正在 schedule
結構上嘗試 createinbatches
(如 []schedule
)。但是當我這樣做時,插入查詢也嘗試插入 user
結構中的值。
插入範例(部分程式碼):
err := db.transaction(func(tx *gorm.db) error { if err := tx.createinbatches(&schedules, len(schedules)).error; err != nil { return err //rollback } }
為了完整起見,這裡是錯誤:
Error Inserting Schedule Batch: Error 1054: Unknown column 'is_active' in 'field list'
是否有標籤或任何可以執行的操作來從插入查詢中省略 user 結構?當我輸出查詢時,它顯示
insert into schedule(計劃列...,[附加使用者結構列])
我還根據此處的文檔嘗試了字段權限標籤
問題是您在schedule
結構中為user
使用embedded
標籤。當您刪除它時,它應該按預期工作。您可以在文件
所以你的 schedule
結構應該如下所示:
type Schedule struct { ID int UserId int User User `gorm:"foreignKey:UserId;references:UserId"` }
以上是帶有嵌入式結構錯誤的 GORM CreateInBatches的詳細內容。更多資訊請關注PHP中文網其他相關文章!