go - 属于自己
问题描述
我正在尝试在同一张桌子上建立 belongsTo 关系。但我无法成功。我在 Internet 上没有找到任何易于理解的示例。
type Role struct {
gorm.Model
Name string
Description string
Inclusive bool
Controller *Role `gorm:"foreignkey:controller;association_foreignkey:id"`
SupervisedRoles []*Role `gorm:"foreignkey:Controller"`
Permissions []*Permission
}
func (r *Role) GetController() (*Role, error) {
controller := &Role{}
return controller, db.DB.Model(r).Related(controller).Error
}
func (r *Role) GetSupervisedRoles() ([]*Role, error) {
roles := []*Role{}
return roles, db.DB.Model(r).Related(roles).Error
}
在我的表中,“控制器”字段是一个可以为空的外键,它引用了我的“角色”表的另一次出现。
如何使用 GORM 实现它?
解决方案
推荐阅读
- c++ - gcc 冷函数属性与 builtin_expect 行为
- c# - MySQL c# windows窗体应用程序中的rank函数
- java - 尝试从 JSON 字符串映射对象时出现 Gson JsonSyntaxException
- javascript - 在 JavaScript 中,为什么值是在作用域内定义的。但未定义的外部范围?
- c# - Highchart多色线系列动态
- numpy - 给定某些维度的索引,如何在 numpy 数组中选择值?
- amazon-web-services - 为什么 aws s3 bucketpolicy 允许上传对象?
- c# - C#没有通过蓝牙串口发送数据
- mysql - Mysql I 参数中的存储过程
- h2 - 错误“未找到架构“information_schema”;” 在 H2 数据库上运行“向上迁移”