gpt4 book ai didi

javascript - 为什么不在 Sequelize 中用 getter 和 setter 创建外键?

转载 作者:行者123 更新时间:2023-12-03 22:41:39 25 4
gpt4 key购买 nike

我是 Sequelize 的新手。我已经在我的模型中实现了 setter 和 getter,然后我添加了一个外键,但它没有被创建。它仅在我删除 getter 和 setter 时创建。
我做错了什么?

示范区

module.exports = function(sequelize, DataTypes) {
const Zone = sequelize.define('Zone', {
zone: {
type: DataTypes.STRING,
allowNull: false
}
},{
getterMethods: {
zone: () => {
return this.getDataValue('zone');
}
},
setterMethods: {
zone: (zone) => {
return this.setDataValue('zone', zone);
}
}
},{
classMethods: {
associate: (models) => {
Zone.hasMany(models.Client, {
foreignKey: 'zone_id',
as: 'zoneFk'
});
},
},
});
return Zone;
};

示范客户
module.exports = (sequelize, DataTypes) => {
const Client = sequelize.define('Client',{
//atributtes...
}, {
classMethods: {
associate: (models) => {
Client.belongsTo(models.Zone, {
foreignKey: 'zone_id',
onDelete: 'CASCADE'
});
},
},
});
return Client;
};

最佳答案

sequelize.define 的第一个参数采用列的定义,如

 sequelize.define('Zone', {
zone: {
type: DataTypes.STRING,
allowNull: false
},
zone_id: {
type:DataTypes.INTEGER,
primaryKey: true,
//autoIncrement:true
}
},

此处 zone_id 也必须是唯一/主键,以便它匹配唯一值。

关于javascript - 为什么不在 Sequelize 中用 getter 和 setter 创建外键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41379514/

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