首页 > 解决方案 > 是否可以在 Golang GORM 中进行无范围预加载?

问题描述

像这样将 Unscoped() 添加到调用链中:

db.Unscoped().Preload("Orders").Find(&users)

影响 Find(),但不影响 Preload()。

为 Preload() 生成的查询仍然包含:

"orders"."deleted_at" IS NULL

如何取消生成的预加载查询的范围?我希望 Preload() 获取软删除的行。

标签: go-gorm

解决方案


回调可以是这样的:

.Preload("Orders", func(db *gorm.DB) *gorm.DB {
   return db.Unscoped() 
}

推荐阅读