0
0

More than 3 years have passed since last update.

Gorm(Golang)で、DBから取得したデータ(複数個)にアソシエーションをつける

Last updated at Posted at 2020-08-24

現在、個人開発中です。
普段はWEBフロントエンドとしてNuxt.jsとFirebaseくらいしか触らないのですが、個人開発でならもっとモダンな技術をガッツリと使いたいという事で、API開発にGolang + Gorm(ORM)で開発しています。

Gormの公式ドキュメントに載ってある、DBから引っ張ってきたデータへのアソシエーションの組み方は↓こうです。
(参照先: http://gorm.io/ja_JP/docs/has_many.html)

db.Model(&user).Related(&emails)
//// SELECT * FROM emails WHERE user_id = 111; // 111 is user's primary key

データが1つの時であれば↑これでOKなのですが、
userが複数の時には、下記の通りにする事で各々のユーザーへリレーションが組めます。

db.Where("user_id = ?", id).Find(&users)
 for i := range users {
 db.Model(users[i]).Related(&users[i].emails)
}

公式ドキュメントには記載が無く、僕はハマってしまいました (Golang経験者の皆様からすれば基本的な事かも知れませんが…)
Golang(Gorm)初心者の方々を救う1手になればと思い、ここにペンを置かせて頂きます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0