乐闻世界logo
搜索文章和话题

Gorm 如何在插入时跳过 struct 中的特定字段

1 个月前提问
1 个月前修改
浏览次数10

1个答案

1

在使用Gorm进行数据库操作时,有时候我们不希望将结构体中的某些字段插入到数据库中。比如说,有些字段可能是计算字段,或者临时存储的数据,并不需要持久化。

在Gorm中,可以通过在模型结构体中设置Gorm标签来实现跳过某些字段。具体来说,可以使用-标签或者设置gorm:"-"来告诉Gorm忽略这个字段。

下面是一个简单的例子:

go
package main import ( "gorm.io/driver/sqlite" "gorm.io/gorm" ) // 定义模型 type Product struct { gorm.Model Code string Price uint TemporaryData string `gorm:"-"` } func main() { // 连接数据库 db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{}) if err != nil { panic("failed to connect database") } // 自动迁移模式 db.AutoMigrate(&Product{}) // 创建记录 db.Create(&Product{Code: "D42", Price: 100, TemporaryData: "This won't be saved"}) }

在这个例子中,Product 结构体有一个 TemporaryData 字段,我们通过 gorm:"-" 标签指定这个字段不应该被Gorm持久化到数据库中。因此,当我们创建一个新的 Product 记录时,TemporaryData 字段的数据不会被插入数据库。

这种方法对于那些不需要保存到数据库或者不是表的一部分的字段特别有用,可以有效地控制数据的持久化内容。

2024年8月12日 17:27 回复

你的答案