ホームページ > バックエンド開発 > Golang > Gorm リレーションシップ エラー: 「リレーションに対して有効な外部キーを定義する必要があります」を修正する方法は?

Gorm リレーションシップ エラー: 「リレーションに対して有効な外部キーを定義する必要があります」を修正する方法は?

Patricia Arquette
リリース: 2024-12-08 15:29:11
オリジナル
389 人が閲覧しました

Gorm Relationship Error: How to Fix

Gorm 関係エラーの診断と解決策

Gorm データベースにアクセスすると、「有効な外部データを定義する必要がある」というエラーが発生する場合があります。リレーションのキーを使用しない場合は、Valuer/Scanner インターフェイスを実装する必要があります。」この問題は、データ モデルとそれに対応するデータベース テーブル間の外部キー関係に不一致がある場合に発生します。

あなたの場合、ConfigurationDescription と LocationDescription の間の関係でエラーが発生します。 ConfigurationDescription の Location フィールドは正しく宣言されており、foreignKey 属性とreferences 属性が設定されているようです。ただし、詳しく調べると、タグが逆になっていることが明らかになります。

所属-先関係パターンの場合、foreignKey 属性は、外部エンティティに結合するモデルローカル キー フィールドと参照を指定する必要があります。属性には、外部エンティティの主キーまたは一意のキーを指定する必要があります。この場合、foreignKey は LocationID であり、参照は ID である必要があります。

問題を解決するには、ConfigurationDescription 構造体を次のように変更します。

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"`
}
ログイン後にコピー

これらの調整により、外部ConfigurationDescription と LocationDescription の間の重要な関係が正しく確立され、Gorm が期待どおりにデータをロードできるようにする必要があります。

以上がGorm リレーションシップ エラー: 「リレーションに対して有効な外部キーを定義する必要があります」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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