try 使用GORM方法Find获取数据库表的值,但它没有返回所有字段的值. 表 struct 是,

CREATE TABLE `company` (
  `id` varchar(36) NOT NULL,
  `createdAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `updatedAt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  `name` varchar(255) NOT NULL,
  `newId` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

在Company.Go中,我们将公司 struct 定义为:

package entities

import "time"

type Company struct {
    Id        string    `json:"id" gorm:"column:id;primaryKey"`
    CreatedAt time.Time `json:"createdAt" gorm:"column:createdAt"`
    UpdatedAt time.Time `json:"updatedAt" gorm:"column:updatedAt"`
    Name      string    `json:"name" gorm:"column:name"`
    NewId     string    `json:"newId" gorm:"column:newId"`
}

在控制器Companies.Go中,使用以下代码获取数据,

var companys []entities.Company
    result := db.Find(&companys)
    c.JSON(http.StatusOK, &result)

在postman 中,它只返回字段name和id的值.其余字段的值为空.这可能是什么问题呢?

我try 使用GORM的Find方法获取所有字段,但它只给出了两个字段

The data in the table looks like the following, enter image description here

推荐答案

由于文档saidcreatedAtupdatedAt是由CNOM管理的,所以你可以留下它的gorm标签吗?

CreatedAt和UpdatedAt是特殊字段,当创建或更新记录时,CNOM会自动使用当前时间填充这些字段.

Go相关问答推荐

Go 1.22 net/http群组路由

区分Terminal和Hook Zerolog Go中的错误级别日志(log)输出

理解Golang并发:缓冲通道的意外行为

显示GUI时后台处理功能

如何从 nil 指针创建值

使用Cookie身份验证的Gorilla Golang Websocket优化

杜松子wine 和中间件

Secrets Manager Update Secret - Secret String 额外的 JSON 编码

在 Golang 中查看目录是否可写的跨平台方式?

Opensearch 错误 ping 弹性服务器:由未知权威签署的 x509 证书

Golang 网络应用程序安全性:您是否应该判断输入是否为有效的 utf-8?

Go 的垃圾收集器在使用时删除 ZeroMQ 套接字

Gorm delete with clauses sqlmock 测试

在恒等函数中将类型 T 转换为类型 U

不能在 *gorm.db 而不是 gorm.db 上使用 WithContext(ctx) 方法

Golang Gin 绑定请求正文 XML 到 Slice

为什么此代码在运行命令 error="exec: not started" 时出现错误?

在 Go 中读取数字行

正确编码 JWT

是否可以动态加载 Go 代码?