Çoklu Yazmada Eksik Transaction (ARCH5065)
Anahtar go.orm.missing-transaction-for-multi-write · Önem warning · Kategori orm
Aynı metotta birbirine bağlı iki veya daha fazla yazma işleminin transaction’a sarılmaması, kısmi commit riski yaratır. Atomik bir blok kullanın.
Hatalı
Bölüm başlığı “Hatalı”db.Create(&order)db.Create(&payment) // ilki başarılı, bu başarısız olursa tutarsız durumdb.Transaction(func(tx *gorm.DB) error { if err := tx.Create(&order).Error; err != nil { return err } return tx.Create(&payment).Error})Düzeltme
Bölüm başlığı “Düzeltme”Birbirine bağlı çoklu yazma işlemlerini db.Transaction ile tek bir atomik blokta birleştirin.