GORM是一个流行的Go语言ORM库,用于简化数据库操作。在使用GORM进行一对一链接时,我们可以通过定义结构体之间的关系来实现。首先,我们需要在结构体中添加外键字段,然后使用GORM
GORM是一个流行的Go语言ORM库,用于简化数据库操作。在使用GORM进行一对一链接时,我们可以通过定义结构体之间的关系来实现。首先,我们需要在结构体中添加外键字段,然后使用GORM的`BelongsTo`方法将两个结构体关联起来。接下来,我们可以使用`Preload`方法在查询时预加载关联数据,以便在需要时一起获取。通过这种方式,我们可以轻松地实现一对一链接,并方便地操作相关数据。
我正在尝试从数据库加载队列项目。我已经创建了一个 api 端点,但无法获取要预加载的队列项目的数据。相反,整个“数据”对象充满了空值。
处理程序:
func QueueItemHandler(w Http.ResponseWriter, r *http.Request) {
var queueItems QueueItem
var builder = database.Model(QueueItem{})
var queryError = builder.
Preload("Status").
Preload("Data").
Find(&queueItems).
Error
w.Header().Set("Content-Type", "application/JSON")
json.NewEncoder(w).Encode(queueItems)
}
以下是我的 gorm 模型的设置方式:
type QueueItemStatus struct {
ID int64 `json:"id" gorm:"primary_key"`
Name string `json:"name"`
Description string `json:"description"`
}
type QueueItemData struct {
ID int64 `json:"id" gorm:"primary_key"`
QueueItemId int64 `json:"queue_item_id"`
ScreenshotUrl string `json:"screenshot_url"`
}
type QueueItem struct {
ID int64 `json:"id" gorm:"primary_key"`
SourceUrl string `json:"source_url"`
OriginId int64 `json:"origin_id"`
StatusId int64 `json:"status_id"`
Status QueueItemStatus `json:"status"`
Data QueueItemData `json:"data" gorm:"foreignKey:id,references:queue_item_id"`
CreatedAt time.Time `json:"created_at"`
}
我在想也许我设置的模型指向错误的列(如果有的话)?
尝试改变这个
Data QueueItemData `json:"data" gorm:"foreignKey:QueueItemId;references:ID"`
以上就是GORM:如何一对一链接?的详细内容,更多请关注编程网其它相关文章!
--结束END--
本文标题: GORM:如何一对一链接?
本文链接: https://lsjlt.com/news/563436.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0