我有以下结构:
type Users struct {
ID int64 `gorm:"id" json:"id"`
Name int64 `gorm:"name" json:"name"`
UserTypeID int `gorm:"column:user_type_id" json:"-"`
UserType BusinnesUserType `gorm:"foreignKey:id;references:user_type_id" json:"user_type"`
LanguageID int64 `gorm:"column:language_id" json:"-"`
Language Language `gorm:"foreignKey:ID;references:LanguageID" json:"language"`
}
type BusinnesUserType struct {
ID int64 `gorm:"id" json:"id"`
Description json.RawMessage `gorm:"description" json:"description"`
}
type Language struct {
ID int64 `gorm:"id" json:"id"`
Description json.RawMessage `gorm:"description" json:"description"`
}
我试图得到这样的东西:
{
"id":1,
"name":"dd",
"user_type":{
"id":1,
"description":{
"en":"admin"
}
},
"language":{
"id":1,
"description":{
"en":"English"
}
}
}
这是我对mysql的gorm查询:
db.Preload("UserType").Preload("Language").Where("id=?",1).Find(&user)
如果我使用Debug()选项,我会看到:
SELECT * FROM `languages` WHERE `languages`.`id` = 1
SELECT * FROM `business_user_types` WHERE `business_user_types`.`id` = 1
SELECT * FROM `users` WHERE `id` = 1
但是我得到了以下json:
{
"id":1,
"name":"dd",
"user_type":{
"id":null,
"description":null
},
"language":{
"id":null,
"description":null
}
}
我以错误的方式使用预加载命令?我已经尝试过使用联接和关联,结果相同。
忽然笑
青春有我
相关分类