Горм добавляет ненужные предложения, которые мне не нужны - PullRequest
0 голосов
/ 20 марта 2020

Я пытаюсь запросить и получить все данные, используя Postgres соединение с gorm в golang.

My Gorm Model


    type WebsiteSlots struct {
    Id uint `gorm:"primary_key"`
    Settings string `gorm:"json"`
    AdsizeId int `gorm:"type:int"`
    WebsiteId int `gorm:"type:int"`
    AdSize Adsizes `gorm:"foreignkey:AdSizesId"`
    Website Websites `gorm:"foreignkey:WebsiteId"`
    UpdatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
    CreatedAt time.Time `gorm:"default:CURRENT_TIMESTAMP"`
}

func (WebsiteSlots) TableName() string {
    return "website_ads"
}

Мой Query-репозиторий GetSlots () производит

"SELECT * FROM" website_ads "WHERE" website_ads "." id "= 2 LIMIT 50 OFFSET 0"

этот запрос. Я не знаю, откуда взялись эти "" website_ads "." Id "= 2"?



type Slots struct {
    Container *container.Container
}

func (w *Slots) GetSlots(skip int , limit int) []models.WebsiteSlots {
    var results []models.WebsiteSlots
    sites := w.Container.Get("dbprovider").(*services.Database)
    postgresConnection := sites.PostgresConnection()

    postgresConnection.LogMode(true)

    var websiteslots models.WebsiteSlots
    resp, _ := postgresConnection.Debug().Find(&websiteslots).Limit(limit).Offset(skip).Rows()
    //i := 0
    for resp.Next() {
        results = append(results,websiteslots)
    }
    return results
}




Может кто-нибудь помочь, пожалуйста?

Ответы [ 2 ]

1 голос
/ 24 марта 2020
websiteslots := []models.WebsiteSlots{}
postgresConnection.Debug().Limit(limit).Offset(skip).Find(&websiteslots)
return websiteslots 

Здесь вы используете Find() & Row(), что может вызвать проблемы. Вы получите результат в websiteslots, тогда зачем использовать resp для подготовки результата.

1 голос
/ 23 марта 2020
 var websiteslots models.WebsiteSlots
    resp, _ := postgresConnection.Debug().Find(&websiteslots).Limit(limit).Offset(skip).Rows()

Find () ожидает фрагмент struct. Но вы предоставляете единую структуру. Я не знаю, является ли это причиной дополнительного предложения WHERE.

...