Mysql Gorm不遵守许多说明符
我对Go的Gorm有意见 我有一个名为scopes的表和一个名为employees的表。 我还有一个名为employee\u scopes的多个/中间表 当我试图用指定的作用域保存员工时。我得到一个错误,Gorm试图将记录插入中间表,就像它是scopes表一样 错误消息: 错误1054:“字段列表”中的未知列“范围” 型号: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
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" `
}