首頁  >  文章  >  後端開發  >  帶有嵌入式結構錯誤的 GORM CreateInBatches

帶有嵌入式結構錯誤的 GORM CreateInBatches

WBOY
WBOY轉載
2024-02-05 21:27:12732瀏覽

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

問題內容

我有以下結構(為了可讀性而被截斷)

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中文網其他相關文章!

陳述:
本文轉載於:stackoverflow.com。如有侵權,請聯絡admin@php.cn刪除