首页 > 解决方案 > Gorm 为某些结构属性选择数据 1 列

问题描述

我想使用带有结构对象的 gorm 选择数据,如下所示:

type Song struct {
   Title string `json:"title" gorm:"column:title"`
   Artist string `json:"artis" gorm:"column:artist"`
   Producer string json:"producer" gorm:"column:artist"
}

使用数据库数据只有 2 列标题和艺术家。您可以看到我想将列艺术家的数据设置为多个结构属性(艺术家和制片人)。

我尝试使用普通选择。艺术家属性填充了数据,但生产者将为空白。

有什么建议吗?

标签: gogo-gorm

解决方案


请参阅文档gorm-hooks

像这样:

func (u *Song ) AfterFind(tx *gorm.DB) (err error) {
  u.Producer = u.Artist 
  return
}

并且Producer字段不应该有gorm:"column:artist"标签。它可能会导致一些其他问题。如果数据库没有这个字段,建议使用gorm:"-".

或者

type Song struct {
   Title string `json:"title" gorm:"column:title"`
   // Use Producer in code, but artist in database.
   Producer string `json:"producer" gorm:"column:artist"`
}

推荐阅读