😎

GORMでデフォルト以外の項目を取得したい

2022/12/13に公開

たとえばCompanyというStructで引っ張ろうとしたら、外部テーブルからゴチャゴチャといろいろなデータをjoinして引っ張ろうとしてくる
すでに mapper/gorm/company.go には

type Company struct {
  ... // ごっちゃり
}

が定義されている

欲しいのはidとstatusだけなのに!というあなたに朗報。

FindでStructを指定するとStructで指定したより簡略なカラムだけを引っ張れますYO
(あるいはより複雑なごちゃごちゃとしたカラムも)
https://gorm.io/ja_JP/docs/advanced_query.html

type Company struct {
  ... // ごっちゃり
}

type CompanyStatus struct {
  ID string
  Status CompanyStatus  
}

// Select `id`, `status` automatically when querying
db.Model(&Company{}).Limit(10).Find(&CompanyStatus{})
// SELECT `id`, `status` FROM `companiess` LIMIT 10

Discussion