关于GORM中的Preload

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)"`
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值