Unscoped() 控制GORM的软删除机制

       在 GORM 中,Unscoped 是一个用于绕过或操作软删除(Soft Delete)机制的方法。GORM 默认支持软删除,当你的模型包含 DeletedAt 字段时,调用 Delete 方法会触发软删除(更新 DeletedAt 字段而非真正删除数据)。Unscoped 允许你绕过这一行为,直接操作被软删除的数据或忽略软删除逻辑。

1. Unscoped 的用途

Unscoped 主要用以下几种场景:

  1. 查询被软删除的记录:默认情况下,GORM 的查询会过滤掉已软删除的记录(DeletedAt IS NULL),使用 Unscoped 可以包含这些记录。
  2. 物理删除记录:通过 Unscoped 执行真正的数据库删除(而非更新 DeletedAt)。
  3. 关联操作:在操作关联模型时,控制是否包含软删除的记录。
  4. 恢复软删除的记录:通过 UnscopedDeletedAt 重置为 NULL

2. 基本用法

定义模型

type User struct {
    gorm.Model  // 内嵌 gorm.Model&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值