Jenis Data Set Tersuai yang berterusan menggunakan GORM Golang
Apabila menggunakan jenis data Set tersuai untuk menentukan perhubungan satu-ke-banyak dalam GORM, anda mungkin menghadapi ralat kerana ia merupakan jenis SQL yang tidak sah. Untuk mengatasinya, anda perlu melaksanakan antara muka Pengimbas dan Penilai Pemacu untuk jenis tersuai anda. Ini akan membolehkan pemacu pangkalan data memahami cara menyimpan dan mendapatkan semula data dalam pangkalan data.
Antara Muka Pengimbas
Antara muka Pengimbas mempunyai kaedah berikut:
func (data *CustomType) Scan(value interface{}) error
Kaedah ini digunakan untuk mengimbas nilai daripada pangkalan data ke dalam jenis tersuai anda. Anda harus melaksanakan kaedah ini untuk menukar nilai pangkalan data kepada jenis tersuai anda.
Antara Muka Penilai Pemacu
Antaramuka Penilai Pemacu mempunyai kaedah berikut:
func (data *CustomType) Value() (driver.Value, error)
Kaedah ini digunakan untuk menukar jenis tersuai anda kepada nilai pangkalan data. Anda harus melaksanakan kaedah ini untuk menukar jenis tersuai anda kepada format yang boleh difahami oleh pangkalan data.
Contoh
Mari kita pertimbangkan jenis tersuai UserAccess, iaitu peta[ antara muka{}]struct{}.
type UserAccess map[interface{}]struct{} func (data *UserAccess) Value() (driver.Value, error) { return data.ConvertJSONToString(), nil } func (data *UserAccess) Scan(value interface{}) error { *data = data.ConvertStringToJson(valueString) }
Dalam contoh ini, ConvertStringToJson dan ConvertJSONToString ialah fungsi pembantu yang menukar antara UserAccess dan format serasi pangkalan data seperti rentetan JSON.
Dengan melaksanakan antara muka ini, anda memaklumkan pemacu pangkalan data cara mengendalikan jenis data tersuai anda, membolehkan anda meneruskannya pangkalan data anda.
Atas ialah kandungan terperinci Bagaimana Mengekalkan Jenis Data Set Tersuai dalam GORM dengan Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!