gorm 关联查询总结

结构体:

type Device struct {
   ID           int64              `gorm:"column:id" json:"id"`
   HardwareId   string             `gorm:"column:hardware_id" json:"hardwareId"`
   ModelId      int64              `gorm:"column:model_id" json:"modelId"`
   IsBind       int64              `gorm:"column:is_bind" json:"isBind"`
   ReleaseDate  webgo.JsonDateTime `gorm:"column:release_date" json:"releaseDate"`
   StoreId      int64              `gorm:"column:store_id" json:"storeId"`
   Status       int64              `gorm:"column:status" json:"status"`
   CreateTime   webgo.JsonDateTime `gorm:"column:create_time" json:"createTime"`
   UpdateTime   webgo.JsonDateTime `gorm:"column:update_time" json:"updateTime"`
   DeviceNumber string             `gorm:"column:device_number" json:"deviceNumber"`
   Alias        string             `gorm:"column:alias" json:"alias"`
   OnlineDevice string             `json:"onlineDevice"`

   OtherData map[string]interface{}

   DeviceModular []DeviceModular   `gorm:"ForeignKey:DeviceID"`
   
}
type DeviceModular struct {
   ID          int64              `gorm:"column:id" json:"id"`
   DeviceId    int64              `gorm:"column:device_id" json:"deviceId"`
   ModularId   int64              `gorm:"column:modular_id" json:"modularId"`
   ModularType int64              `gorm:"column:modular_type" json:"modularType"`
   InstallSite int64              `gorm:"column:install_site" json:"installSite"`
   ConType     int64              `gorm:"column:con_type" json:"conType"`
   CreateTime  webgo.JsonDateTime `gorm:"column:create_time" json:"createTime"`
   Coin        int64              `gorm:"column:coin" json:"coin"`
   CtrlFall    int64              `gorm:"column:ctrl_fall" json:"ctrlFall"`
   DefaultFall int64              `gorm:"column:default_fall" json:"defaultFall"`
   ActualFall  int64              `gorm:"column:actual_fall" json:"actualFall"`

   CommWeimaqi CommWeimaqi        `gorm:"ForeignKey:ID;"`
}
type CommWeimaqi struct {
   ID              int64              `gorm:"column:id" json:"id"`
   WeimaqiId       string             `gorm:"column:weimaqi_id" json:"weimaqiId"`
   Tag             string             `gorm:"column:tag" json:"tag"`
   MarkeType       string             `gorm:"column:marke_type" json:"markeType"`
   Rssi            string             `gorm:"column:rssi" json:"rssi"`
   IsBind          int64              `gorm:"column:is_bind" json:"isBind"`
   HardwareVersion string             `gorm:"column:hardware_version" json:"hardwareVersion"`
   NetworkingType  int64              `gorm:"column:networking_type" json:"networkingType"`
   Status          int64              `gorm:"column:status" json:"status"`
   CreateTime      webgo.JsonDateTime `gorm:"column:create_time" json:"createTime"`
   UpdateTime      webgo.JsonDateTime `gorm:"column:update_time" json:"updateTime"`
}

 

三个结构体  device里面包含多个devicemodular,  devicemodular 包含一个commweimaqi

现在需要查询单条device记录和多条device记录,并将其中的关联的关系数据一起查询出来

var device []model.Device
//db.SqlDB.First(&device).Preload("CommWeimaqi").Related(&device.DeviceModular)   //查询单条device记录
db.SqlDB.Preload("DeviceModular.CommWeimaqi").Preload("DeviceModular").Find(&device) //查询所有device记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值