Masalah:
Anda mempunyai jenis data Set tersuai yang ditentukan dalam Go , seperti threadUnsafeSet, dan anda cuba mengekalkan jenis data ini ke dalam MySQL menggunakan perpustakaan GORM. Walau bagaimanapun, anda menghadapi ralat yang berkaitan dengan jenis SQL yang tidak sah untuk set.
Penyelesaian:
Untuk menyelesaikan isu ini, anda perlu melaksanakan kaedah Nilai dan Imbasan untuk jenis data set tersuai anda. Kaedah ini membolehkan pemacu pangkalan data menyimpan dan mendapatkan semula data dalam format serasi pangkalan data.
Berikut ialah contoh pelaksanaan:
type ThreadUnsafeSet map[interface{}]struct{} func (data *ThreadUnsafeSet) Value() (driver.Value, error) { // Implement the logic to convert data to a database-compatible format, e.g., JSON return data.ConvertJSONToString(), nil } func (data *ThreadUnsafeSet) Scan(value interface{}) error { // Implement the logic to convert from the database-compatible format to the custom set data type *data = data.ConvertStringToJson(valueString) return nil }
Nota Tambahan:
Dalam kaedah Nilai dan Imbasan, anda boleh menggunakan beberapa teknik bersiri atau pengekodan seperti JSON untuk menukar jenis data tersuai anda kepada rentetan atau format bait serasi dengan MySQL. Ini membolehkan anda menyimpan dan mendapatkan semula data sebagai satu entiti dan bukannya lajur yang berasingan.
Atas ialah kandungan terperinci Bagaimana Mengekalkan Jenis Data Custom Go Set dalam MySQL menggunakan GORM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!