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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

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

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

Go
烙印99 2022-07-18 16:24:30
我有兩個表:每個用戶可以有多個工作users,jobs但一個特定的工作屬于一個用戶。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)驗 獲得超8個贊

查看您需要生成的 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 方法中進行一點小改動即可加載它。我添加了錯誤檢查,因為您應(yīng)該始終擁有它們。


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

    var jobs []entity.Job

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


    return jobs, tx.Error

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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