type User struct {
Id int `gorm:"primary_key"`
Username string
Email string
Mobile string
CreateTime string
UpdateTime string
}
type Team struct {
Id int
Name string // 名称
Member string // 成员
}
type Somet struct {
Id int
ApprovalId int // 审批人id
Approval User
TeamId int // 组id
Team Team
State int // 状态
}
数据库中仅存Somet的Id、ApprovalId、TeamId、State字段。
Preload可做关联查询。
relation []Somet
err =DBM.Model(&Somet{}).Where("xxx = ? ", xxx).
Preload("Team").Preload("Approval").Find(&relation).Error
类似于ORM中的RelatedSel
func (m *Ticket) GetRiskTicketById(id int) Ticket {
result := Ticket{}
err := Model.QueryTable(new(Ticket)).RelatedSel().Filter("id", id).One(&result)
if err != nil {
return result
}
return result
}
type Smoet struct {
Id int `orm:"pk" json:"Id,string"`
SeparationId int // 数据访问申请id
Approval *Users `json:"Approval" orm:"null;rel(one);on_delete(do_nothing)"` // 审批人id
Team *Team `json:"Team" orm:"null;rel(one);on_delete(do_nothing)"`
State int // 状态
}
type State struct {
Id int
Name string
State int
}
type Ticket struct {
Id int `json:"Id,string" orm:"pk"`
No string
State *TicketState `json:"State"orm:"column(state);null;rel(one);on_delete(do_nothing)"`
}