登录
首页 >  Golang >  Go问答

Gorm使用Find方法仅返回单条记录

来源:stackoverflow

时间:2024-02-26 08:42:23 467浏览 收藏

从现在开始,努力学习吧!本文《Gorm使用Find方法仅返回单条记录》主要讲解了等等相关知识点,我会在golang学习网中持续更新相关的系列文章,欢迎大家关注并积极留言建议。下面就先一起来看一下本篇正文内容吧,希望能帮到你!

问题内容

我正在尝试从我的数据库中获取所有记录, 使用find获取条件记录, 这是我的代码

result := map[string]interface{}{}

conn = conn.table("routename")
conn = conn.where("status = ?", 1)
conn = conn.find(&result).debug()

fmt.println(result)

使用接口时,我只得到一行,结果如下

map[id:1 routename:fafa status:1 routecode:a]

我认为这是我的界面问题,所以我尝试使用数组作为结果, 这是另一个定义结果

var result []model.routename

有了这个,我得到了以下记录

{[0    0][0    0]}

看到我的记录数据没有放入结果中,为了确认我确实从数据库中获取了行记录,使用 count func 来计算记录,结果得到 2,所以我认为我确实获取了记录,但不知何故我可以无法正确获取记录值,以下是我的模型

type RouteName struct {
    id           int    `gorm:"column:id" json:"id"`
    routeName    string `gorm:"column:routeName" json:"routeName"`
    status       int    `gorm:"column:status" json:"status"`
    routeCode    string `gorm:"column:routeCode" json:"routeCode"`
}

func (RouteName) TableName() string {
    return "routeName"
}

我不知道为什么会这样,需要一些建议来解决它。


正确答案


gorm 无法访问结构中的字段,因为它们未导出。

之前

type routename struct {
id           int    `gorm:"column:id" json:"id"`
routename    string `gorm:"column:routename" json:"routename"`
status       int    `gorm:"column:status" json:"status"`
routecode    string `gorm:"column:routecode" json:"routecode"`
}

之后

type RouteName struct {
    Id           int    `gorm:"column:id" json:"id"`
    RouteName    string `gorm:"column:routeName" json:"routeName"`
    Status       int    `gorm:"column:status" json:"status"`
    RouteCode    string `gorm:"column:routeCode" json:"routeCode"`
}

到这里,我们也就讲完了《Gorm使用Find方法仅返回单条记录》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>