Счет Горм на предварительно загруженном поле

Я использую Postgres с Go Lang и фреймворком Echo в качестве своей базы, при этом я использую Gorm для построения запросов к базе данных.

Так вот моя модель профиля,

type Profile struct {
  gorm.Model
  InvoiceCount     uint      `gorm:"-"`
  CompanyName      string    `gorm:"size:255"`
  CompanyNumber    string    `gorm:"size:10"`
  CompanyVatNumber string    `gorm:"size:10"`
  DateAdded        time.Time `gorm:"type:date"`
  PrimaryEmail     string    `gorm:"size:255"`
  IsActive         bool
  Invoice []*Invoice `gorm:"foreignkey:profile_fk" json:",omitempty"`
  Address []*Address `gorm:"foreignkey:profile_fk" json:",omitempty"`
} 

Это связано с моей моделью Invoice, с которой я пытаюсь рассчитать предварительную нагрузку. Я добавил InvoiceCount У uint есть средство добавления количества в эту модель.

Так вот что я связал,

dbCon().
  Preload("Invoice", func(db *gorm.DB) *gorm.DB {   
    return db.Count(&profile)
  }).
  Find(&profile).
  RecordNotFound()

Тем не менее, я, кроме этого не работает, он возвращает следующую ошибку: (pq: zero-length delimited identifier at or near """"),

Я пытаюсь сделать это с помощью простого запроса, но это что неправильно? Нужно ли мне просто обвести все мои профили и добавить счетчик для каждого? Или перейти к необработанному запросу SQL с дополнительным выбором?

Спасибо,

1 ответ

Я построил этот запрос Raw SQL,

dbConn().
    Raw("SELECT p.*, count(i.id) as invoice_count FROM profiles p left join invoices i on i.profile_fk = p.id group by p.id").
    Scan(&result)
Другие вопросы по тегам