You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用gorm.Model时如何停用Gorm软删除?是否需复制结构体

解决Gorm中使用gorm.Model但停用软删除的问题

不用复制整个gorm.Model结构体,有两种简单方法可以停用软删除:

方法1:忽略DeletedAt字段

在你的模型中嵌入gorm.Model后,重新定义DeletedAt字段并加上gorm:"-"标签,让Gorm完全忽略该字段,这样既不会在数据库中生成对应的列,也不会触发软删除逻辑:

type YourModel struct {
  gorm.Model
  DeletedAt time.Time `gorm:"-"` // 忽略该字段,停用软删除
  // 你的其他业务字段
}

方法2:替换DeletedAt字段类型

Gorm的软删除功能是基于gorm.DeletedAt类型触发的,你可以把模型中的DeletedAt替换成普通的time.Time类型,这样数据库中依然会保留该字段,但Gorm不会将其视为软删除标识,执行删除操作时会直接删除数据库记录:

import "time"

type YourModel struct {
  gorm.Model
  DeletedAt time.Time // 替换为普通time.Time,禁用软删除
  // 你的其他业务字段
}

这两种方法都不需要复制gorm.Model的全部字段,只需要覆盖DeletedAt即可达到停用软删除的目的。

内容的提问来源于stack exchange,提问作者k_o_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 08:34:56