Go DB查询命令正在生成奇怪的sql查询

Go DB查询命令正在生成奇怪的sql查询,go,go-gorm,cockroachdb,Go,Go Gorm,Cockroachdb,我的模型是: type Report struct { ID int `json:"id,omitempty" gorm:"primary_key"` Title *string `json:"title" gorm:"not null"` } 我已将变量report初始化为var report我已成功地将此模型自动迁移为数据库表,并已使用GORM的db.Create(&report)将数据库填充为sql INSERT 我面临的问题是在尝试查询命令时。GORM支持

我的模型是:

type Report struct {
    ID    int     `json:"id,omitempty" gorm:"primary_key"`
    Title *string `json:"title" gorm:"not null"`
}
我已将变量
report
初始化为
var report
我已成功地将此模型自动迁移为数据库表,并已使用GORM的
db.Create(&report)
将数据库填充为
sql INSERT

我面临的问题是在尝试查询命令时。GORM支持的每个查询命令,例如
db.Find(&report)
db.First(&report,1)
,都会生成如下查询:

SELECT * FROM "reports"  WHERE "reports"."deleted_at" IS NULL AND ((id = $1))
SELECT * FROM "reports"  WHERE "reports"."deleted_at" IS NULL AND ((id = $1))
SELECT * FROM reports WHERE (reports.deleted_at IS NULL) AND ((id = $1))
SELECT * FROM reports WHERE (reports.deleted_at IS NULL) AND ((id = $1))
SELECT 0 done

我无法查询数据库。我正在使用GORM和蟑螂db。当使用GO pq驱动程序和原始sql命令时,这项功能可以正常工作。

位于的
deleted\u列是GORM结构及其功能的一部分。您是否在使用本例中看不到的
gorm.Model
?除非定义名为
DeletedAt
的字段或在模型结构中嵌入
gorm.Model
,否则不应该发生这种情况

由于模型已在处删除字段,gorm将自动使用软删除功能。您可以使用
Unscoped

 db.Unscoped().Find(&reports)
这与运行原始查询相同

db.Raw("SELECT * FROM reports").Scan(&reports)

正是我所困惑的。我没有定义任何名为
DeletedAt
的字段,也没有使用
gorm.Model
。我只定义了一个
Report struct
,并将gorm包装在
httprouter
下以插入和查询每个结构<代码>数据库。创建
工作正常。在
db.Find中使用error函数返回
未找到的记录
。顺便说一句,我的代码是基于cockroachlabs提供的示例orm包派生的。我再试了一次,但没有找出问题所在。GORM文档中作为Where(Struct&Map)查询提供的示例也不起作用。同时,我使用了GORM的原始查询作为
db.raw(“SELECT*FROM reports”).Scan(&report)
,目前似乎只有这一点起作用。