gorm查询有数据,结果都是零值(只有id有值),结果如下,First和Find方法结果都是这样
{"ID":2,"ProjectID":"","PageID":"","Remark":"","PageStatus":"","Title":"","CreatedAt":"0001-01-01T00:00:00Z","UpdatedAt":"0001-01-01T00:00:00Z","CreatedBy":"","UpdatedBy":"","Content":"","PageData":"","PageVersion":0}
应该是哪里犯了低级错误,但一直没盯出来,代码如下,调用
// Page 结构体代表 PAGES 表
type Page struct {
ID int64 `gorm:"column:id;primary_key;AUTO_INCREMENT;NOT NULL;comment:'自增ID,主键'"`
ProjectID string `gorm:"column:project_id;NOT NULL;comment:'项目ID,唯一且不为空'"`
PageID string `gorm:"column:page_id;NOT NULL;comment:'页面ID,唯一且不为空'"`
Remark string `gorm:"column:remark;comment:'页面描述'"`
PageStatus string `gorm:"column:page_status;comment:'页面状态 publish 发布状态;modify 编辑状态'"`
Title string `gorm:"column:title;comment:'页面标题'"`
CreatedAt time.Time `gorm:"column:created_at;default:current_timestamp;comment:'记录创建时间,自动生成当前时间戳'"`
UpdatedAt time.Time `gorm:"column:updated_at;default:current_timestamp on update current_timestamp;comment:'记录更新时间,自动生成当前时间戳,每次更新自动更新为当前时间'"`
CreatedBy string `gorm:"column:created_by;comment:'创建人'"`
UpdatedBy string `gorm:"column:updated_by;comment:'最后修改人'"`
Content string `gorm:"column:content;comment:'页面内容,JSON格式'"`
PageData string `gorm:"column:page_data;comment:'页面数据,JSON格式'"`
PageVersion int `gorm:"column:page_version;NOT NULL;comment:'页面版本号'"`
}
func (p *Page) TableName() string {
return "pages"
}
执行代码如下
var page Page
err := db.Default().First(&page, id).Error
if err != nil {
return nil, err
}
First 和Find都是这个情况,如果查一个id不存在的,结果确实是不存在不会给上面这种零值
更新:找到原因了,确实是低级错误,上述结构体是让chatgpt自动生成的,数据库设计的时候,字段名是全大写的,生成的时候column写成了小写,一直没盯出来
找到原因了,是低级错误,上述结构体是让chatgpt自动生成的,数据库设计的时候,字段名是全大写的,生成的时候column写成了小写,一直没盯出来