Rumah > pembangunan bahagian belakang > Golang > Mengapa Gorm Melemparkan Ralat Kunci Asing Walaupun Hubungan Model Nampak Betul?

Mengapa Gorm Melemparkan Ralat Kunci Asing Walaupun Hubungan Model Nampak Betul?

Susan Sarandon
Lepaskan: 2024-11-22 12:24:15
asal
233 orang telah melayarinya

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

Ralat Kunci Asing dalam Hubungan Gorm

Semasa cuba mendapatkan semula model daripada pangkalan data menggunakan Gorm, mesej ralat timbul: "medan tidak sah ditemui untuk model struct. Lokasi medan ConfigurationDescription, perlu menentukan kunci asing yang sah untuk hubungan atau ia perlu melaksanakan antara muka Penilai/Pengimbas." Ralat ini berlaku walaupun model data nampaknya mengikut garis panduan dokumentasi Gorm.

Model data yang diberikan mentakrifkan hubungan Kepunyaan-Kepunyaan antara ConfigurationDescription dan LocationDescription. Walau bagaimanapun, teg kunci asing dan teg rujukan dalam struct ConfigurationDescription nampaknya diterbalikkan.

Dalam corak hubungan Kepunyaan-Kepada, teg foreignKey harus menamakan medan kunci tempatan model yang bercantum dengan entiti asing , manakala teg rujukan harus menamakan kunci utama atau unik entiti asing.

Untuk menyelesaikan isu, teg dalam ConfigurationDescription struct hendaklah ditukar seperti berikut:

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"`
}
Salin selepas log masuk

Dengan teg ini diperbetulkan, Gorm harus mengenali dengan betul perhubungan antara kedua-dua model dan mendapatkan semula data dengan jayanya tanpa menghadapi ralat kunci asing.

Atas ialah kandungan terperinci Mengapa Gorm Melemparkan Ralat Kunci Asing Walaupun Hubungan Model Nampak Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan