GORM 使用心得:回调、软删除与多租户
demo data
在多个项目中用 GORM 实现数据访问层后,我总结了三个关键点。
用回调统一横切逻辑
软删除、租户隔离、审计字段填充都适合放在 GORM 的全局回调里:
db.Callback().Create().Before("gorm:create").Register("audit", func(db *gorm.DB) {
db.Statement.SetColumn("creator", userID, true)
})
软删除字段按列名匹配
自定义软删回调时,字段查找必须按数据库列名而不是 Go 字段名,否则回调会静默失效。
多租户过滤
从 context 取租户号注入查询条件,既保证隔离,又能在需要时按接口豁免。
Comments
No comments yet — be the first to say something