【发布时间】:2021-08-17 02:19:06
【问题描述】:
我使用 find 方法查找一些记录,但是当我发送错误的条件时,它应该返回 ErrRecordNotFound,但它返回一个空结构
var projectSetBudget domain.ProjectSetBudget
filter := &domain.ProjectSetBudget{}
filter.TenantID = tenantID
filter.ID = ProjectSetBudgetID
res := r.db.Where(filter).Find(&projectSetBudget)
我只是打印信息
zap.S().Info(errors.Is(res.Error, gorm.ErrRecordNotFound))
它打印错误
并返回空结构
{
"ID": 0,
"CreatedAt": "0001-01-01T00:00:00Z",
"UpdatedAt": "0001-01-01T00:00:00Z",
"DeletedAt": null,
"title": "",
}
【问题讨论】:
-
只是打印错误,可能还有其他错误。如果有错误,你的结构是空的。
-
如果 gorm 没有找到记录,它可能会返回一个空结构。我在字段中添加“omitempty”标签可以提供帮助。我在named hyperlinks找到答案