KDOC 398: GORMフックはレシーバーがnilになる可能性がある
この文書のステータス
- 作成
- 2025-06-19 貴島
- レビュー
- 2025-06-25 貴島
概要
GORMではHooksを使用できる。これによってCRUD操作の前後の処理を挿入できる。
func (u *User) BeforeDelete(tx *gorm.DB) (error) { return nil }
もし Delete()
にスライスのUserを渡し一括で削除しようとすると、フックは1度だけ実行され、レシーバはnilになる。
直感的ではないが、こうなっていなければ1件1件削除するたびにモデル情報を取得する必要があり、パフォーマンスの問題になるだろう。
関連
なし。