GORM 使用心得:回调、软删除与多租户

2026-08-20 后端开发 有希 142 次浏览

demo data

在多个项目中用 GORM 实现数据访问层后,我总结了三个关键点。

用回调统一横切逻辑

软删除、租户隔离、审计字段填充都适合放在 GORM 的全局回调里:

db.Callback().Create().Before("gorm:create").Register("audit", func(db *gorm.DB) {
    db.Statement.SetColumn("creator", userID, true)
})

软删除字段按列名匹配

自定义软删回调时,字段查找必须按数据库列名而不是 Go 字段名,否则回调会静默失效。

多租户过滤

从 context 取租户号注入查询条件,既保证隔离,又能在需要时按接口豁免。

评论

登录后即可参与评论

还没有评论,来说两句吧

相关文章