我正在使用PostgreSQL数据库表:
CREATE TABLE foo (
name varchar(50),
types varchar(50)[],
role varchar[10]
);
以及在Go语言中对应的结构:
type Foo struct {
Name string `db:"name"`
Types []string `db:"types"`
Role string `db:"role"`
}
我希望将数据库行数据提取到我的结构体中。目前,我可以通过使用以下方法来实现:
var foo Foo
query := `SELECT name, types, roles FROM foo LIMIT 1`
err = dbConn.QueryRow(query).Scan(&foo.Name, pq.Array(&foo.Types), &foo.Role)
但我希望通过直接映射来实现相同的效果。就像这样:
var foo []Foo
query := `SELECT name, types, roles FROM foo`
dbWrapper.err = dbConn.Select(&foo, query)
上面的代码片段会因为
Types
是pq数组而出错。能否直接将pq数组作为结构体的一部分进行映射?