Gorm 関係における外部キー エラー
Gorm を使用してデータベースからモデルを取得しようとすると、エラー メッセージが表示されます: 「フィールドが無効です」 struct models.ConfigurationDescription のフィールド Location で見つかりました。リレーションの有効な外部キーを定義するか、それを実装する必要があります。評価者/スキャナー インターフェイス。」このエラーは、データ モデルが Gorm ドキュメント ガイドラインに従っているように見えるにもかかわらず発生します。
指定されたデータ モデルは、ConfigurationDescription と LocationDescription の間の Belongs-To 関係を定義しています。ただし、ConfigurationDescription 構造体の外部キー タグと参照タグが逆になっているようです。
Belongs-To 関係パターンでは、foreignKey タグは外部エンティティに結合するモデルローカル キー フィールドの名前を指定する必要があります。一方、参照タグは外部エンティティの主キーまたは一意のキーを指定する必要があります。
この問題を解決するには、ConfigurationDescription 構造体のタグを次のように交換する必要があります。
type ConfigurationDescription struct { ID int `json:"configurationID"` Name string `json:"name"` IsActive bool `json:"isActive"` LocationID int `json:"-"` Location LocationDescription `json:"location,omitempty" gorm:"foreignKey:ID;references:LocationID"` }
これらのタグを修正すると、Gorm は 2 つのモデル間の関係を適切に認識し、外部キー エラーが発生することなくデータを正常に取得できるようになります。
以上が一見正しいモデル関係にもかかわらず、Gorm が外部キー エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。