尝试使用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")
答案 0 :(得分:1)
你似乎并没有做任何特别错误的事情。我使用postgres
驱动程序在本地运行您的示例(您没有指定您正在使用的驱动程序),它运行得很好 - 我的猜测是这里缺少一些信息。事情要确定:
dbMapper.AddTableWithName(Post{}, "posts")
是否已调用该表。通常在未调用AddTableWithName
时返回您引用的错误。sql.Open("postgres", "user=postgres dbname=test")
dbMapper := &gorp.DbMap{Db: db, Dialect: gorp.PostgresDialect{}}
除此之外,我认为我们需要更多信息才能深入了解这一点。