Maison > développement back-end > Golang > Erreur de relation Gorm : comment corriger « besoin de définir une clé étrangère valide pour les relations » ?

Erreur de relation Gorm : comment corriger « besoin de définir une clé étrangère valide pour les relations » ?

Patricia Arquette
Libérer: 2024-12-08 15:29:11
original
362 Les gens l'ont consulté

Gorm Relationship Error: How to Fix

Diagnostic et solution des erreurs de relation Gorm

Lors de l'accès à une base de données Gorm, vous pouvez rencontrer une erreur indiquant : "besoin de définir un nom étranger valide clé pour les relations ou il faut implémenter l'interface Valuer/Scanner." Ce problème survient lorsqu'il existe une incompatibilité dans les relations de clé étrangère entre les modèles de données et leurs tables de base de données correspondantes.

Dans votre cas, l'erreur se produit pour la relation entre ConfigurationDescription et LocationDescription. Le champ Location dans ConfigurationDescription semble être déclaré correctement, avec les attributs ForeignKey et References définis. Cependant, en y regardant de plus près, il devient clair que les balises sont inversées.

Pour un modèle de relation Belongs-To, l'attribut ForeignKey doit nommer le champ de clé locale du modèle qui rejoint l'entité étrangère, ainsi que les références. L'attribut doit nommer la clé primaire ou unique de l'entité étrangère. Dans ce cas, la clé étrangère doit être LocationID et les références doivent être ID.

Pour résoudre le problème, modifiez la structure ConfigurationDescription comme suit :

type ConfigurationDescription struct {
    ID         int                 `json:"configurationID"`
    Name       string              `json:"name"`
    IsActive   bool                `json:"isActive"`
    LocationID int                 `json:"-" gorm:"foreignKey:LocationID"`
    Location   LocationDescription `json:"location,omitempty" gorm:"references:ID"`
}
Copier après la connexion

Avec ces ajustements, la clé étrangère La relation clé entre ConfigurationDescription et LocationDescription doit être établie correctement, permettant à Gorm de charger les données comme prévu.

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:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal