Gorm 関係エラー: 外部キーの適切な実装
Gorm では、モデル間の関係を確立することが、効率的なデータの取得と操作にとって重要です。最近報告された問題は、データベースからデータを取得しようとしているときに、特に「Location」フィールドが外部キーとして使用されているときに発生したエラーに関するものです。
問題を理解するには、定義されたデータ モデルを調べることから始めましょう。リレーションシップの場合:
// LocationDescription model type LocationDescription struct { ID int `json:"locationID"` Name string `json:"name"` IsActive bool `json:"isActive"` } // ConfigurationDescription model type ConfigurationDescription struct { ID int `json:"configurationID"` Name string `json:"name"` IsActive bool `json:"isActive"` LocationID int `json:"location_id"` Location LocationDescription `json:"location,omitempty" gorm:"foreignKey:ID;references:LocationID"` }
エラーが発生しました。「構造体モデルに無効なフィールドが見つかりました。ConfigurationDescription のフィールド Location。リレーションに対して有効な外部キーを定義する必要があります。」 Gorm が「Location」フィールドと「LocationDescription」テーブルの主キーを正しく結合できないことを示します。コードを調べると、「foreignKey」タグと「references」タグが誤って適用されていることが明らかです。
Belongs-To 関係の場合、「foreignKey」は参照するモデルローカル キー フィールドを指定する必要があります。外部エンティティの主キーまたは一意のキー。この場合、外部エンティティは「LocationDescription」であり、その主キーは「ID」です。したがって、適切な構成は次のとおりです。
Location LocationDescription `json:"location,omitempty" gorm:"foreignKey:LocationID;references:ID"`
この調整を行った後、Gorm エラーが解決され、データベースから正常にデータを取得できるようになります。モデル間の適切な関係を確立するには、外部キーと参照が正しく定義されていることを確認することが不可欠であることに注意してください。
以上がGorm で Belongs-To 関係の外部キーを正しく実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。