gpt4 book ai didi

mysql - Gorm不遵守many2many说明符

转载 作者:行者123 更新时间:2023-12-01 22:11:31 24 4
gpt4 key购买 nike

我在Go's Gorm方面遇到问题。
我有一个名为范围的表和一个名为员工的表。
我还具有一个名为 employee_scopes 的many2many / intermediary表。
当我尝试保存具有指定范围的员工时。我收到一个错误,Gorm试图将记录插入到中间表中,就好像它是作用域表一样。
错误信息:
错误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:
CREATE TABLE `employees`
(
ID INT(6) AUTO_INCREMENT,
first_name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT current_timestamp,
deleted_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id),
);

CREATE TABLE `scopes`
(
id INT(6) AUTO_INCREMENT,
scope VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT current_timestamp,
deleted_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id)
);

CREATE TABLE `employee_scopes`
(
id INT(6) AUTO_INCREMENT,
employee_id INT(6) NOT NULL,
scope_id INT(6) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT current_timestamp,
deleted_at TIMESTAMP,
updated_at TIMESTAMP,
PRIMARY KEY (id),
FOREIGN KEY (employee_id) REFERENCES employees (id),
FOREIGN KEY (scope_id) REFERENCES scopes (id)
);
就像Gorm没有在听我指定的内容。我尝试使用正确的说明符添加反向引用,但遇到相同的错误。我还添加了很多2很多替代,但这也没有用。

最佳答案

错误消息:错误1054:“字段列表”中的未知列“作用域”

由于gorm的原因,请使用表名作为结构名(Ref)的复数形式。这就是为什么gorm尝试将数据插入employee_scopes表中的原因。您的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" `
}

关于mysql - Gorm不遵守many2many说明符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63336545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com