一見正しいモデル関係にもかかわらず、Gorm が外部キー エラーをスローするのはなぜですか?

Susan Sarandon
リリース: 2024-11-22 12:24:15
オリジナル
177 人が閲覧しました

Why Does Gorm Throw a Foreign Key Error Despite Seemingly Correct Model Relationships?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート