我有一个结构,其中包含一个类对象数组,这些对象是使用推理模式上载到bigquery表中的。但是,我现在试图遍历该表并相应地更新值,而我无法访问保存类对象数组的列。
我已经尝试使用不同的类名称(例如“ Reviewers [0] .Role”,“ Reviewers[0].Role
”,“ Reviewers_0.Role”,“ Reviewers(0).Role”)访问它。其中有效
//Models which I'm using for the schema of the tables
type PullRequest struct {
Reviewers []*Reviewer `json:"reviewers"`
}
type Reviewer struct {
Role string `json:"role"`
Status string `json:"status"`
User *User `json:"user"`
}
//Putting sql statements in constant to avoid SQL injection
const (
prUpdateSQL = "UPDATE %s.%s.%s"
prSetSQL = "SET %v = '%v'"
prSetNonEscapeSQL = "%v = %v"
prSetEscapeSQL = "%v = '%v'"
prWhereSQL = "WHERE ID = %v"
)
commandstring := fmt.Sprintf(prUpdateSQL+" ", projectID, datasetID, tableName)
for i, r := range pr.Reviewers{
reviewerString := fmt.Sprintf("Reviewers.%d", i)
commandstring += fmt.Sprintf(prSetEscapeSQL+", ", reviewerString+".Role", r.Role)
commandstring += fmt.Sprintf(prSetEscapeSQL+", ", reviewerString+".Status", r.Status)
commandstring += fmt.Sprintf(prSetEscapeSQL+", ", reviewerString+".User.Name", r.User.Name)
}
我期望结果能够将数组中的不同类对象值设置为pr所保存的新值。相反,我收到此错误消息:UPDATE ... SET不支持使用[1:914]中的[],invalidQuery“的数组修改”