为了账号安全,请及时绑定邮箱和手机立即绑定

gorp中使用Select的问题

gorp中使用Select的问题

Go
郎朗坤 2021-06-02 21:01:48
尝试使用gorp进行 SELECT 时收到以下错误:No table found for type: Post这是我的代码的样子:type Post struct {    Id         int64  `db:"post_id"`    CreatedAt  int64  `db:"created_at"`    UpdatedAt  int64  `db:"updated"`    Title      string `db:"title"`}var list []*Post_, err := dbMapper.Select(&list, "SELECT * FROM posts")if (err != nil) {    fmt.Fprintf(writer, "%s", err)    return}for _, item := range list {    fmt.Fprintf(writer, "%s\n", item.Title)}我正在添加这样的表格:dbMapper.AddTableWithName(Post{}, "posts").SetKeys(true, "Id")
查看完整描述

1 回答

?
绝地无双

TA贡献1946条经验 获得超4个赞

看起来你并没有做错什么。我使用postgres驱动程序在本地运行了您的示例(您没有指定您使用的是哪个驱动程序),它运行得很好 - 我猜是这里缺少一些信息。需要确保的事项:

  • dbMapper.AddTableWithName(Post{}, "posts")在尝试使用该表之前检查是否已调用该表。您引用的错误通常在AddTableWithName未调用时返回。

  • 检查该表是否确实存在于您的数据库中,并且您正在使用(类似)连接到正确的数据库 sql.Open("postgres", "user=postgres dbname=test")

  • 实例化 Gorp 时,请确保使用正确的方言:dbMapper := &gorp.DbMap{Db: db, Dialect: gorp.PostgresDialect{}}在 Postgres 的情况下

  • 这可能与旧版本的 Gorp 有关 - 自从提出这个问题已经几个月了,现在升级可能会解决这个问题。

除此之外,我认为我们需要更多信息来深入了解这个问题。


查看完整回答
反对 回复 2021-06-28
  • 1 回答
  • 0 关注
  • 205 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信