Несколько предварительных загрузок Gorm не работают

Добрый понедельник, утро всем! У меня проблема с предварительной загрузкой объектов! Я делаю несколько предварительных загрузок сущностей. Countryentity работает нормально, но Report не предварительно загружается. Есть идеи, что может быть причиной этого?

type Review struct {
  ID             int
  Report   Report 'gorm:"ForeignKey:ReportId"'
  ReportId uint
  Country        Country      'gorm:"ForeignKey:CountryId"'
  CountryId      uint
}
func FindApprovedReviews(page int, countryId int) ([]Review, int, error) {
  var reviews [] Review

// Subtract one to fix Offset but keep page number correct
  page -= 1
  err := db.Where("approved_at IS NOT NULL").
//TODO: Change this to a configuration file value
      Limit(10).
      Where("approved_by IS NOT NULL").
      Where("country_id = ?", countryId).
//TODO: Change this (the 10) to a configuration value
      Offset(page * 10).
      Order("id desc").
      Preload("Report").
      Preload("Country").
      Find(&reviews).
      Error
  if err != nil {
      return nil, 0, err
  }

  return reviews, count, err
}

Две связанные структуры (Country и Report) просто составлены из gorm.Model для целей обсуждения.

Заранее спасибо за помощь!!

РЕДАКТИРОВАТЬ: я использую драйвер mysql.

P.S. [...] представляют бизнес-данные, которые были скрыты, но это простые столбцы, которые работают нормально.


person Pietro Bongiovanni    schedule 04.12.2017    source источник


Ответы (1)


Только что понял, что выбирал запросы, в которых отношение (то есть FK) с таблицей Report было нулевым.

Прекрасно работает, если ключ отношения не равен нулю.

person Pietro Bongiovanni    schedule 04.12.2017