From 1a5b8270efff78ee2cc3d7fcebc9435300722ec4 Mon Sep 17 00:00:00 2001 From: Paul Pan Date: Sat, 23 Dec 2023 15:37:46 +0800 Subject: [PATCH] fix: DB: Submission nested preload --- internal/model/Submission.go | 11 ++++++----- internal/service/status/query.go | 8 ++++++-- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/internal/model/Submission.go b/internal/model/Submission.go index 37bb14d..882cbb8 100644 --- a/internal/model/Submission.go +++ b/internal/model/Submission.go @@ -4,9 +4,10 @@ import "gorm.io/gorm" type Submission struct { gorm.Model `json:"meta"` - ProblemID uint `json:"problem_id" gorm:"not null;index"` - UserID uint `json:"-" gorm:"not null;index"` - User User `json:"user" gorm:"foreignKey:UserID"` - Language string `json:"language" gorm:"not null"` - Code string `json:"code" gorm:"not null"` + ProblemID uint `json:"-" gorm:"not null;index"` + Problem Problem `json:"problem" gorm:"foreignKey:ProblemID"` + UserID uint `json:"-" gorm:"not null;index"` + User User `json:"user" gorm:"foreignKey:UserID"` + Language string `json:"language" gorm:"not null"` + Code string `json:"code" gorm:"not null"` } diff --git a/internal/service/status/query.go b/internal/service/status/query.go index 1073e31..8baed80 100644 --- a/internal/service/status/query.go +++ b/internal/service/status/query.go @@ -18,7 +18,10 @@ func (s *service) Query(sid uint, associations bool) (*model.Status, e.Status) { query := s.db.Get() if associations { - query = query.Preload(clause.Associations) + query = query. + Preload("Submission.Problem"). + Preload("Submission.User"). + Preload(clause.Associations) } err := query. @@ -43,7 +46,8 @@ func (s *service) QueryByVersion(pvid uint, offset int, limit int, count *int64) IsEnabled: true, } - err := s.db.Get().Preload(clause.Associations). + err := s.db.Get(). + Preload("Submission.Problem").Preload("Submission.User").Preload(clause.Associations). Where(status). Order("created_at DESC"). Offset(offset).Limit(limit).Find(&ret).