gorm 模拟试卷
钩子函数与回调机制专题测试
- BeforeSave/AfterSave 生命周期钩子
- BeforeCreate/AfterCreate 创建钩子
- BeforeUpdate/AfterUpdate 更新钩子
- 回调注册与执行顺序
试卷习题(17 题)
参考答案在文末判断题
1
判断题
db.Unscoped().Delete(&user) 也会触发 BeforeDelete 和 AfterDelete 钩子。
单选题
2
单选题
BeforeUpdate 钩子在什么时候被调用?
3
单选题
AfterFind 钩子的主要用途是什么?
4
单选题
BeforeUpdate 钩子适合用于以下哪个场景?
5
单选题
GORM 的 BeforeCreate 钩子在什么时候被调用?
6
单选题
BeforeDelete 钩子在什么情况下会被调用?
7
单选题
BeforeDelete 钩子的主要用途是什么?
8
单选题
GORM 的 AfterFind 钩子在什么时候被调用?
多选题
9
多选题
以下关于更新钩子的描述,哪些是正确的?
10
多选题
以下哪些场景适合使用 AfterFind 钩子?
11
多选题
在 AfterUpdate 钩子中可以执行数据库操作吗?
12
多选题
以下哪些场景适合使用删除钩子?
13
多选题
以下哪些场景适合使用 BeforeCreate 钩子?
14
多选题
以下哪些场景适合使用 AfterFind 钩子?
填空题
15
填空题
GORM 的钩子执行顺序为:钩子 -> 执行SQL -> 钩子。如果 Before 钩子返回错误,则不会执行 SQL 和 After 钩子。
16
填空题
定义 GORM 钩子的方法是实现方法,如果返回错误则会插入操作。
17
填空题
GORM 钩子方法的标准签名为 func (m *Model) (tx *) error。
参考答案
1.正确
2.D
3.A
4.A
5.A
6.C
7.D
8.C
9.A;B;C
10.A;B
11.A;B;D
12.A;B;C;D
13.A;B;D
14.A;B;D
15.Before;After
16.BeforeCreate(tx *gorm.DB) error;中止
17.AfterFind;gorm.DB
