有什么方法可以使用自定义查询进行急切加载

时间:2021-04-28 02:07:16

标签: go go-gorm

我有一个具有这种结构的课堂模型:

type Classroom struct {
    ID          uint `json:"id"`
    ...
    Progression Progression
}

Progression 结构如下:

type Progression struct {
    ClassrromID  int64 `json:"classroom_id"`
    SubjectDone  int64 `json:"subject_done"`
    SubjectTotal int64 `json:"subject_total"`
    ModuleDone   int64 `json:"module_done"`
    ModuleTotal  int64 `json:"module_total"`
    WebinarDone  int64 `json:"webinar_done"`
    WebinarTotal int64 `json:"webinar_total"`
    QuizDone     int64 `json:"quiz_done"`
    QuizTotal    int64 `json:"quiz_total"`
    ExamDone     int64 `json:"exam_done"`
    ExamTotal    int64 `json:"exam_total"`
}

如您所见,我想将所有用户进度和所需进度计算到 Progression 结构中

我如何创建 GORM 急切加载,以便我可以在每个教室都有 Progression。 这是我的查询:

    // my previous code here...

    query = query.Preload("Progression", func(db *gorm.DB) *gorm.DB {
        query := db.Debug()

        // my custom query goes here...

        return query
    }).Find(&classrooms)

   // my subsequent code here...

0 个答案:

没有答案