Dalam bahasa pengaturcaraan Go, GORM ialah rangka kerja ORM (object-relational mapper) yang popular untuk bekerja dengan pangkalan data. Apabila bekerja dengan pangkalan data hubungan seperti PostgreSQL, selalunya perlu menyimpan koleksi nilai dalam satu medan, yang dikenali sebagai tatasusunan.
Apabila mencuba untuk menambah tatasusunan integer []int64 pada medan model Gorm, seseorang mungkin menghadapi ralat: "panic: invalid sql type (slice) for postgres." Ralat ini berlaku kerana Gorm tidak boleh memetakan kepingan secara automatik ke medan pangkalan data.
Untuk menyelesaikan isu ini, anda perlu menggunakan jenis data tersuai yang disediakan oleh perpustakaan pangkalan data asas. Dalam kes PostgreSQL, perpustakaan pq menawarkan cara untuk mewakili tatasusunan integer sebagai jenis tersuai pq.Int64Array untuk medan DeckType dalam model Gorm:
<code class="go">type Game struct { gorm.Model GameCode string GameName string DeckType pq.Int64Array `gorm:"type:integer[]"` GameEndDate string }</code>
Dalam teg gorm, type:integer [] menyatakan bahawa medan ini harus dianggap sebagai tatasusunan integer dalam pangkalan data.
Untuk memasukkan tatasusunan integer ke dalam model Gorm, seseorang boleh menggunakan sintaks berikut:
<code class="go">dt := []int64{1, 2, 3} db.Create(&Game{GameCode: "xxx", GameName: "xxx", DeckType: pq.Int64Array(dt), GameEndDate: "xxx"}) </code>
Atas ialah kandungan terperinci Bagaimana untuk Menyimpan Tatasusunan Integer dalam Model GORM Menggunakan PostgreSQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!