Mysql Gorm不遵守许多说明符

Mysql Gorm不遵守许多说明符,mysql,go,many-to-many,go-gorm,Mysql,Go,Many To Many,Go Gorm,我对Go的Gorm有意见 我有一个名为scopes的表和一个名为employees的表。 我还有一个名为employee\u scopes的多个/中间表 当我试图用指定的作用域保存员工时。我得到一个错误,Gorm试图将记录插入中间表,就像它是scopes表一样 错误消息: 错误1054:“字段列表”中的未知列“范围” 型号: type Employee struct { gorm.Model FirstName string `json:"Firs

我对Go的Gorm有意见

我有一个名为scopes的表和一个名为employees的表。 我还有一个名为employee\u scopes的多个/中间表

当我试图用指定的作用域保存员工时。我得到一个错误,Gorm试图将记录插入中间表,就像它是scopes表一样

错误消息: 错误1054:“字段列表”中的未知列“范围”

型号:

type Employee struct {
    gorm.Model
    FirstName  string           `json:"FirstName"  gorm:"column:first_name;type:varchar(100);not null"`
    Scopes     []EmployeeScope  `json:"Scopes"     gorm:"many2many:employee_scopes"`
}

type EmployeeScope struct {
    gorm.Model
    Scope     string            `json:"Scope" `
}
SQL:

好像戈姆没有听我说的。我尝试使用正确的说明符添加back引用,但得到了相同的错误。我还添加了多2多个覆盖,但这也不起作用

错误消息:错误1054:“字段列表”中的未知列“范围”

由于gorm的原因,请使用表名作为结构名()的复数版本。这就是gorm试图将数据插入
employee\u范围
表的原因。您的
EmployeeScope
结构名称应为
Scope

type Employee struct {
    gorm.Model
    FirstName  string           `json:"FirstName"  gorm:"column:first_name;type:varchar(100);not null"`
    Scopes     []Scope          `json:"Scopes"     gorm:"many2many:employee_scopes"`
}

type Scope struct {
    gorm.Model
    Scope     string            `json:"Scope" `
}

非常感谢你!我现在遇到一个问题,Gorm希望将现有记录插入scopes表。我应该怎么做才能让Gorm自动解析我添加到切片中的作用域名称中的ID?Gorm不自动解析ID,您可以将作用域ID作为requestbody发送,获取这些作用域并在Employee中设置现有记录,您可以检查此答案
type Employee struct {
    gorm.Model
    FirstName  string           `json:"FirstName"  gorm:"column:first_name;type:varchar(100);not null"`
    Scopes     []Scope          `json:"Scopes"     gorm:"many2many:employee_scopes"`
}

type Scope struct {
    gorm.Model
    Scope     string            `json:"Scope" `
}