【DM版本】: dm8
【操作系统】: windows, linux
【CPU】:
【问题描述】*: dm go 驱动 go-20251201 使用 gorm-v2 遇到问题: dm库中有数据, 查询结果有数据但是映射不到结构体上, 结构体中column 配置的字段和数据库中保持一致用大写可以查出结果映射到结构体, 结构体中的数据必须要和数据库中大小写保持一致么, 数据库已开启大小写不敏感
1、达梦数据库表结构
CREATE TABLE "TEST"."T_CONTENT"
(
"ID" BIGINT AUTO_INCREMENT NOT NULL,
"MID" VARCHAR(64 CHAR) DEFAULT '',
"OID" VARCHAR(64 CHAR) DEFAULT '',
"CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(),
"UPDATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP(),
NOT CLUSTER PRIMARY KEY("ID")) STORAGE(ON "TEST", CLUSTERBTR) AUTO_INCREMENT = 1;
2、gorm 表结构体
type TContent struct {
Id int gorm:"column:id;primary_key;AUTO_INCREMENT;NOT NULL;comment:'only update id'" json:"Id"
MZID string gorm:"column:mid" json:"MZID"
OTTID string gorm:"column:oid" json:"OTTID"
CreateTime time.Time gorm:"column:create_time;default:CURRENT_TIMESTAMP" json:"CreateTime"
UpdateTime time.Time gorm:"column:update_time;default:CURRENT_TIMESTAMP" json:"UpdateTime"
}
func (t *TContent) TableName() string {
return "t_content"
}
3、查出方法
func (t *TContentRepo) GetContentByMid(mid string, limit int) ([]TContent, error) {
var entity []TContent
if err := t.DB.Where("mid = ? ", mid).Limit(limit).Find(&entity).Error; err != nil {
return nil, err
}
return entity, nil
}
