第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何將 MySQL 查詢轉(zhuǎn)換為 GORM 查詢

如何將 MySQL 查詢轉(zhuǎn)換為 GORM 查詢

Go
烙印99 2022-07-18 16:24:30
我有兩個(gè)表:每個(gè)用戶可以有多個(gè)工作users,jobs但一個(gè)特定的工作屬于一個(gè)用戶。type Job struct {    ID      uint   `gorm:"primarykey" json:"id"`    Title   string `gorm:"type:varchar(255); not null" json:"title"`    Content string `gorm:"not null" json:"content"`    UserID  uint   `json:"-"`}type User struct {    ID         uint      `gorm:"primarykey" json:"-"`    UUID       uuid.UUID `gorm:"type:char(36) not null" json:"-"`    Name       string    `gorm:"type:varchar(255); not null" json:"name"`    Jobs       []Job     `json:"-"`}我想和它的作者一起發(fā)布每一篇文章。以下查詢有效:SELECT j.id, j.title, j.content, u.name AS authorFROM jobs AS jINNER JOIN users AS uON j.user_id = u.id在戈姆:func (jobRepo repository) FindAll() []entity.Job {    var jobs []entity.Job    jobRepo.db.Find(&jobs)    // how do we handle the rest?    return jobs}我必須返回以下 JSON 響應(yīng):job_id: <random_id>job_title: "Test Title Content",job_content: "Test Job Content",author: {  name: "Test User Name"}如何獲取每篇文章的作者數(shù)據(jù)?
查看完整描述

1 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

查看您需要生成的 JSON 響應(yīng),您可以先將User字段添加到Job結(jié)構(gòu)中,如下所示:


type Job struct {

    ID      uint   `gorm:"primarykey" json:"id"`

    Title   string `gorm:"type:varchar(255); not null" json:"title"`

    Content string `gorm:"not null" json:"content"`

    UserID  uint   `json:"-"`

    User    User   `json:"author"`

}

此外,只需在您的 repo 方法中進(jìn)行一點(diǎn)小改動(dòng)即可加載它。我添加了錯(cuò)誤檢查,因?yàn)槟鷳?yīng)該始終擁有它們。


func (jobRepo repository) FindAll() ([]entity.Job, error) {

    var jobs []entity.Job

    tx := jobRepo.db.Preload("User").Find(&jobs)


    return jobs, tx.Error

}


查看完整回答
反對(duì) 回復(fù) 2022-07-18
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)