package
0.0.0-20241014034954-4e9f10944cf0
Repository: https://github.com/chasespace/go-common-pkg-exmaples.git
Documentation: pkg.go.dev

# README

gorm docs

go首选的ORM框架

  • 连接池(database/sql的pool)
  • 级联
  • 钩子
  • 预加载
  • 事务
  • 复合主键
  • 自动聚合
  • Logger
  • 可基于回调扩展自己的插件
  • 测试覆盖

高级用法 -- 给CRUD操作写回调函数

本身gorm已经写了很多CRUD对应回调,参考这里

func updateCreated(scope *Scope) {
  if scope.HasColumn("Created") {
    scope.SetColumn("Created", NowFunc())
  }
}

db.Callback().Create().Register("update_created_at", updateCreated)
// register a callback for Create process

Delete a callback from callbacks

db.Callback().Create().Remove("gorm:create")
// delete callback `gorm:create` from Create callbacks

Replace a callback having same name with new one

db.Callback().Create().Replace("gorm:create", newCreateFunction)
// replace callback `gorm:create` with new function `newCreateFunction` for Create process

Register callbacks with orders

// Before, After参数意思是在这个参数代表回调函数之前/之后注册新的回调函数(参数对应回调不存在也不会报错)
db.Callback().Create().Before("gorm:create").Register("update_created_at", updateCreated)
db.Callback().Create().After("gorm:create").Register("update_created_at", updateCreated)
db.Callback().Query().After("gorm:query").Register("my_plugin:after_query", afterQuery)
db.Callback().Delete().After("gorm:delete").Register("my_plugin:after_delete", afterDelete)
db.Callback().Update().Before("gorm:update").Register("my_plugin:before_update", beforeUpdate)
db.Callback().Create().Before("gorm:create").After("gorm:before_create").Register("my_plugin:before_create", beforeCreate)

# Functions

No description provided by the author