一对多

最后更新于:2022-04-02 02:48:36

[TOC] ## 一对多 ``` type HsUser struct { UserId int `orm:"pk"` UserLogin string UserName string UserSex int HsUserConfig []*HsUserConfig `orm:"reverse(many)"` } type HsUserConfig struct { CfgId string `orm:"pk;"` //UserId int `orm:"-"` //注意不需要此字段,映射rel时自动包含了此字段 CfgDataType string HsUser *HsUser `orm:"rel(fk);column(user_id)"` } ``` ## 查 ``` o := orm.NewOrm() //通过 user_id 找多条 hsUserConfig hsUserConfig := new([]HsUserConfig) num, err := o.QueryTable("hs_user_config").Filter("user_id", 107).All(hsUserConfig) ThrowErr(err) fmt.Println(num) fmt.Println(hsUserConfig) //通过一条 hsUserConfig的条件 查到对应的user_id user := new(HsUser) o.QueryTable(user).Filter("HsUserConfig__CfgDataType", "contact1").RelatedSel().Limit(1).One(user) //注意 CfgDataType 需要在struct 中 fmt.Println(user) ```
';