为了账号安全,请及时绑定邮箱和手机立即绑定

Gorm 计数预加载字段

Gorm 计数预加载字段

Go
潇潇雨雨 2023-06-19 15:55:02
我正在使用带有 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 查询?
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我已经构建了这个原始 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)


查看完整回答
反对 回复 2023-06-19
  • 1 回答
  • 0 关注
  • 242 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信