Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah pembangunan bahagian belakang Golang Pramuat Gorm memberikan ralat lajur yang tidak jelas

Pramuat Gorm memberikan ralat lajur yang tidak jelas

Feb 10, 2024 pm 07:12 PM
pergi bahasa

Gorm 预加载给出了不明确的列错误

Editor PHP Zimo memperkenalkan anda kepada ralat lajur yang tidak jelas dalam pramuat Gorm. Gorm ialah perpustakaan ORM yang biasa digunakan dalam bahasa Go untuk melaksanakan operasi pangkalan data. Apabila menggunakan Gorm untuk pramuat, anda kadangkala menghadapi ralat lajur yang tidak jelas. Sebab ralat ini mungkin kerana struktur jadual pangkalan data tidak konsisten dengan definisi model Gorm, atau nama lajur jadual perkaitan yang dipramuat adalah tidak betul. Penyelesaian kepada masalah ini adalah untuk menyemak struktur jadual pangkalan data dan definisi model Gorm untuk memastikan ia konsisten, dan semak semula bahawa nama lajur jadual persatuan yang telah dimuatkan adalah betul. Dengan menyelesaikan ralat ini, anda boleh berjaya menggunakan Gorm untuk operasi pramuat dan meningkatkan kecekapan operasi pangkalan data.

Kandungan soalan

Saya mempunyai struktur berikut

type employee struct {
    employeeid        int64  `gorm:"primary_key;column:employee_id"`
    employeecode      string `gorm:"column:employee_code"`
    firstname         string `gorm:"column:first_name"`
    lastname          string `gorm:"column:last_name"`
    designationid     int64  `gorm:"column:designation_id;"`
    designation       *designation `gorm:"foreignkey:designationid"`
}

type designation struct {
    designationid   int64  `gorm:"primary_key;column:designation_id"`
    designationname string `gorm:"column:designation_name"`
}

func getemployee(id int64) (*employee, error) {
    db := connection.getconn() //get connection
    defer db.close()

    employee := &employee{}
    err := db.model(employees).preload("designation", func(db *gorm.db) *gorm.db {
        return db.join("inner join employees on employees.designation_id = designations.id").order("employees.first_name desc")
    }).find(employee).error
    return employee, err
}
Salin selepas log masuk

Pertanyaan yang dijana ialah

SELECT * FROM employees;
SELECT * FROM designations INNER JOIN employees ON employees.designation_id = designations.id WHERE id IN (1,2) order by employees.first_name DESC;
Salin selepas log masuk

Saya mempunyai sambungan yang serupa dengan apa yang saya tulis dalam fungsi di atas. Di sini, saya tidak dapat menyambung dengan betul, tetapi dalam kes sebenar, saya tahu bahawa saya perlu menyambung, dan terdapat id medan dalam kedua-dua jadual pramuat dan jadual sambung. Oleh kerana kedua-dua jadual mempunyai nama lajur yang sama iaitu id dalam kes ini mysql akan membuang ralat

错误1052:where子句中的列“id”不明确

Saya mengalami masalah ini dalam gorm v1.9.16

Saya tidak menemui sebarang sumber yang menyebut masalah yang sama. Bagaimana kita menyelesaikan masalah ini?

Penyelesaian

Bolehkah anda cuba menggunakan versi terkini (> v1.20.x)?

Isu ini ditutuphttps://github.com/go-gorm/gorm/issue/2653

Isu ini nampaknya telah diselesaikan dalam versi baharuhttps://github.com/go-gorm/gorm/commit/2ae0653af2bc19cd31f687e797b189c85f0ac3f6

Atas ialah kandungan terperinci Pramuat Gorm memberikan ralat lajur yang tidak jelas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang May 03, 2024 pm 12:15 PM

Cara menggunakan refleksi untuk mengakses medan dan kaedah persendirian dalam golang

Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang Apr 25, 2024 pm 02:39 PM

Petua untuk mencipta fungsi baharu secara dinamik dalam fungsi golang

Perbezaan antara ujian prestasi dan ujian unit dalam bahasa Go Perbezaan antara ujian prestasi dan ujian unit dalam bahasa Go May 08, 2024 pm 03:09 PM

Perbezaan antara ujian prestasi dan ujian unit dalam bahasa Go

Apakah perangkap yang perlu kita perhatikan semasa mereka bentuk sistem teragih dengan teknologi Golang? Apakah perangkap yang perlu kita perhatikan semasa mereka bentuk sistem teragih dengan teknologi Golang? May 07, 2024 pm 12:39 PM

Apakah perangkap yang perlu kita perhatikan semasa mereka bentuk sistem teragih dengan teknologi Golang?

Perpustakaan dan alatan teknologi Golang yang digunakan dalam pembelajaran mesin Perpustakaan dan alatan teknologi Golang yang digunakan dalam pembelajaran mesin May 08, 2024 pm 09:42 PM

Perpustakaan dan alatan teknologi Golang yang digunakan dalam pembelajaran mesin

Evolusi konvensyen penamaan fungsi golang Evolusi konvensyen penamaan fungsi golang May 01, 2024 pm 03:24 PM

Evolusi konvensyen penamaan fungsi golang

Peranan teknologi Golang dalam pembangunan IoT mudah alih Peranan teknologi Golang dalam pembangunan IoT mudah alih May 09, 2024 pm 03:51 PM

Peranan teknologi Golang dalam pembangunan IoT mudah alih

Bolehkah parameter pembolehubah golang digunakan untuk mengembalikan nilai fungsi? Bolehkah parameter pembolehubah golang digunakan untuk mengembalikan nilai fungsi? Apr 29, 2024 am 11:33 AM

Bolehkah parameter pembolehubah golang digunakan untuk mengembalikan nilai fungsi?

See all articles