Skip to content

关于beego框架的orm问题 #40

Description

@kathe-jing

@astaxie
关于beego框架中数据表的一对多关系有个问题想请教一下,具体如下:

我现在有两张表,policy和rule,policy和rule时间是一对多的关系,model的定义如下:

type Policy struct {
Id int orm:"pk;auto"
Rules []*Rule orm:"reverse(many)"
ServiceInstanceId string orm:"size(64)"
Name string orm:"size(64)"
MinInstance int
MaxInstance int
StatisticWin int
BreachDur int
CooldownOut int
CooldownIn int
LastScaleoutTime time.Time
LastScaleinTime time.Time
}

type Rule struct {
Id int orm:"pk;auto"
Policy *Policy orm:"rel(fk)"
MetricType string orm:"size(16);"
ScaleOutThreshold int
ScaleOutUnit int
ScaleInThreshold int
ScaleInUnit int
}

现在http请求的body体的格式如下:

​{
"Rules": [
{
"MtricType": "CPU",
"ScaleOutThreshold": 80,
"ScaleOutUnit": 1,
"ScaleInThreshold": 30,
"ScaleInUnit": 5
},
{
"MtricType": "Memory",
"ScaleOutThreshold": 80,
"ScaleOutUnit": 1,
"ScaleInThreshold": 30,
"ScaleInUnit": 1
}
],
"ServiceInstanceId": "fb41bf4a-89c6-4a73-9f3b-1f8957215a52",
"Name": "policy_1",
"MinInstance": 1,
"MaxInstance": 5,
"StatisticWin": 120,
"BreachDur": 300,
"CooldownOut": 300,
"CooldownIn": 300
}

现在我要解析body体,​err := json.Unmarshal(this.Ctx.Input.RequestBody, &policy),最后执行policy的save,但是rule却没有更新,我看到policy和rule之间定义一对多的关系时,使用的是结构体指针的数组和结构体的指针,与body的格式不一样,请问如果我想解析出的policy带有rule的指针数组,并且save policy的时候不仅更新policy表,还更新相应的rule表,请问这样可以实现吗?​

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions