当前位置: 首页 > 知识库问答 >
问题:

【已解决】golang gorm查询: 数据库有数据,但查出来都是零值?

时衡虑
2024-05-21

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 Pageerr := db.Default().First(&page, id).Errorif err != nil {return nil, err}

First 和Find都是这个情况,如果查一个id不存在的,结果确实是不存在不会给上面这种零值


更新:找到原因了,确实是低级错误,上述结构体是让chatgpt自动生成的,数据库设计的时候,字段名是全大写的,生成的时候column写成了小写,一直没盯出来

共有1个答案

谭裕
2024-05-21

找到原因了,是低级错误,上述结构体是让chatgpt自动生成的,数据库设计的时候,字段名是全大写的,生成的时候column写成了小写,一直没盯出来

 类似资料:
  • 我有一个,我试图将其转换为String[],以便查询数据库,但我得到了,我不知道问题出在哪里? 将arraylist转换为String[]: 然后我使用游标查询: arraylist和String[]从索引0到34都必须有35个元素 我不明白问题出在哪里?

  • 问题内容: 我正在将SQLAlchemy用作python项目的ORM。我创建了很少的模型/架构,并且工作正常。现在,我需要查询现有的MySQL数据库,而不仅仅是select语句,不能插入/更新。 如何围绕该现有数据库的表创建包装器?我已经简短地阅读了sqlalchemy文档和SO,但是找不到任何相关的内容。所有人都建议执行方法,在这里我需要编写原始sql查询,而我想以与使用SA模型相同的方式使用S

  • 本文向大家介绍Oracle数据库并行查询出错的解决方法,包括了Oracle数据库并行查询出错的解决方法的使用技巧和注意事项,需要的朋友参考一下 Oracle的并行查询是使用多个操作系统级别的Server Process来同时完成一个SQL查询,本文讲解Oracle数据库并行查询出错的解决方法如下: 1、错误描述 2、错误原因 在添加并行时,出现错误 3、解决办法 保证添加的并行和查询中的保持一致,

  • SqliteOpenHelper只是一个工具,是SQL世界和OOP之间的一个通道。我们要新建几个类来请求已经保存在数据库中的数据,和保存新的数据。被定义的类会使用ForecastDbHelper和DataMapper来转换数据库中的数据到domain models。我仍旧使用默认值的方式来实现简单的依赖注入: class ForecastDb( val forecastDbHelper:

  • 本文向大家介绍解决mybatis plus 分页查询有条数,total和pages都是零的问题,包括了解决mybatis plus 分页查询有条数,total和pages都是零的问题的使用技巧和注意事项,需要的朋友参考一下 一. 问题还原 1. Controller代码部分 Page<FixedAssetsEntity> pageForPlus = getPage(); Page<FixedAss

  • 我是新来的和我试图我的得到一个从它。我试图这样做的它与这是id但问题是我不知道如何返回目标从。 这就是<代码>刀 这是Repository类