Maison > développement back-end > Golang > le corps du texte

GORM CreateInBatches avec erreur de structure intégrée

WBOY
Libérer: 2024-02-05 21:27:12
avant
781 Les gens l'ont consulté

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

Contenu de la question

J'ai la structure suivante (tronquée pour plus de lisibilité)

type schedule struct {
    id              int  
    userid          int
    user            user    `gorm:"embedded;foreignkey:userid;references:userid"`
}
Copier après la connexion

Et puis voici ma structure d'utilisateurs (encore une fois tronquée pour plus de lisibilité) :

type user struct {
    id         int
    userid     int
    isactive   bool 
}
Copier après la connexion

Je récupère les valeurs dans la structure schedule 结构上尝试 createinbatches (如 []schedule )。但是当我这样做时,插入查询还尝试插入 user.

Insérer un exemple (partie de code) :

err := db.transaction(func(tx *gorm.db) error {
    if err := tx.createinbatches(&schedules, len(schedules)).error; err != nil {
        return err //rollback
    }
}
Copier après la connexion

Pour être complet, voici les erreurs :

Error Inserting Schedule Batch: Error 1054: Unknown column 'is_active'
in 'field list'
Copier après la connexion

Y a-t-il une balise ou quelque chose que je puisse faire pour omettre la structure utilisateur de la requête d'insertion ? Lorsque je génère la requête, elle s'affiche insert into schedule(计划列...,[附加用户结构列])

J'ai également essayé la balise d'autorisations de champ en fonction de la documentation ici


Bonne réponse


Le problème est que vous êtes dans la balise schedule 结构中为 user 使用 embedded. Lorsque vous le supprimez, cela devrait fonctionner comme prévu. Vous pouvez en savoir plus dans Documents

Votre schedule structure devrait donc ressembler à ceci :

type Schedule struct {
    ID              int  
    UserId          int
    User            User `gorm:"foreignKey:UserId;references:UserId"`
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal