Gorm 计数预加载字段

我正在使用带有 Go Lang 和 Echo 框架的 Postgres 作为我的基础,我正在使用 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 模型中,我正尝试在预加载时对其进行计数。我添加了InvoiceCountuint 有一种方法可以将计数添加到这个模型中。


所以这就是我所绑定的,


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 查询?


潇潇雨雨
浏览 244回答 1
1回答

莫回无

我已经构建了这个原始 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)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go