現在、個人開発中です。
普段は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手になればと思い、ここにペンを置かせて頂きます。