猿问

如何在 gorm 中使用自定义预加载

我有这两个结构


type User struct {

  gorm.Model

  Name      string

  CompanyID int

  Company   Company

}


type Company struct {

  gorm.Model

  Name string

  Adress string

}

我想获得用户并预加载他们的公司,但我不想得到地址字段,我尝试了自定义预加载,如波纹管,并在postman中进行了测试。查询返回了所有字段,但对于地址,我得到一个空字符串,发生这种情况的原因是,当将结果存储在用户结构中时,golang会自动初始化所有字段,并且字段地址将返回其初始值,这是一个空的刺


var user []User

     db.Table("users").Preload("Company",func(db *gorm.DB) *gorm.DB {

        return db.Select("ID" ,"Name")

    }).Find(&user)

我该怎么办,只有名称和ID,而不是地址


慕侠2389804
浏览 101回答 1
1回答

HUH函数

如果您的服务器将结果导出为 json,则可以添加 json 标记 omitempty,如下所示:type Company struct {    gorm.Model    Name string    Adress string `json:"omitempty"`}这样,如果地址字段为空字符串,则不会包含该字段。
随时随地看视频慕课网APP

相关分类

Go
我要回答