版本升级遇到的问题
老版本 Count() 返回int,新版本 Count() 返回int64
老版本 Update() 的用法相当于新版本 Save() 的用法
Update
老版本传入结构体指针
func LogIp(admin *service.Admin) {
DB.Table("admin").Where("id = ?", admin.ID).Update(admin)
}
新版本传入key value 更新
db.Model(&User{
}).Where("active = ?", true).Update("name", "hello")
钩子函数
钩子函数(Hook)是在创建、查询、更新、删除等操作之前、之后调用的函数。
常用的钩子函数有:
创建
// 开始事务
BeforeSave
BeforeCreate
// 关联前的 save
// 插入记录至 db
// 关联后的 save
AfterCreate
AfterSave
// 提交或回滚事务
更新
// 开始事务
BeforeSave
BeforeUpdate
// 关联前的 save
// 更新 db
// 关联后的 save
AfterUpdate
AfterSave
// 提交或回滚事务
删除
// 开始事务
BeforeDelete
// 删除 db 中的数据
AfterDelete
// 提交或回滚事务
查询
// 从 db 中加载数据
// Preloading (eager loading)
AfterFind
查询
版本升级遇到的问题
老版本 Count() 返回int,新版本 Count() 返回int64
老