1
私はpostgresを照会するためにgo-gorpを使用しています。テーブル内の複合型を照会できないようです。私が望むのは、適切にネストされたJSONレスポンスです。私のPostgresのスキーマは次のとおりです。次のようにゴールからPostgres複合型を照会
CREATE TYPE PhoneType AS ENUM ('MOBILE', 'HOME', 'WORK');
CREATE TYPE PhoneNumber AS (
"Number" VARCHAR,
"Type" PhoneType
);
CREATE TABLE Person (
"Id" SERIAL PRIMARY KEY NOT NULL,
"Name" VARCHAR NOT NULL,
"Email" VARCHAR,
"Number" PhoneNumber[]
);
に対応しgolangで、私は
const (
MOBILE PhoneType = iota
HOME
WORK
)
type PhoneNumber struct {
Number string
Type PhoneType
}
type Person struct {
Id int
Name string
Email string
PhoneNumber // not sure how to get array of phone numbers here
}
を持って照会し、私は行く-gorpを使用しています:
dbmap := &gorp.DbMap{Db: db, Dialect: gorp.PostgresDialect{}}
var data []Person
_, err := dbmap.Select(&data, "SELECT * FROM Person")
を私が得る結果がありフォーマット
{
"Id":
"Name":
"Email"
"Number": "{\"(..., ...)\"}"
"Type": 0
}
私
このネストされた複合型を、私の宣言に適した型に変更するにはどうすればよいですか?
EDIT:postres配列のように見え、複合型はgoで文字列になります。どのように私は同様の結果を達成するためにスキーマを再設計できますか?
は、私はすでに、ここでは私が取得エラーだと試みた SQL:サポートされていないスキャン、driver.Valueタイプを格納:列のインデックス3のスキャンエラー[] uint8 into type * [] main.PhoneNumber – tushar