1
그래서 postgres를 쿼리하기 위해 go-gorp를 사용하고 있으며 내 테이블에서 복합 유형을 쿼리 할 수 없다는 오류가 발생합니다. 내가 원하는 것은 적절히 중첩 된 JSON 응답이다. 내 포스트 그레스 스키마는 다음과 같습니다고글에서 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
}
나는 예상되는 것은 :
{
"Id":
"Name":
"Email":
"PhoneNumber": [{
"Number":
"Type":
}]
}
이 중첩 된 복합 유형을 내 선언에 친숙한 유형으로 변경하려면 어떻게해야합니까?
편집 : postres 배열과 복합 유형이 이동 중에 문자열이되는 것처럼 보입니다. 비슷한 결과를 얻기 위해 스키마를 어떻게 재 설계 할 수 있습니까?
난 이미 여기가 내가 오류 있다는 시도 SQL : 지원되지 않는 검사, driver.Value 유형을 저장 : 열 인덱스 3에 검색 오류 [] uint8을 type으로 변환 [] main.PhoneNumber – tushar