如何在没有 Sequelize 默认 ID 的情况下从另一个 table 获取数据?
How to get data from another table without default ID from Sequelize?
我有 2 个 table。
预订。
- id = 整数(sequelize 的默认值)
- id_booking = 字符串
客户。
- id = 整数(sequelize 的默认值)
- id_booking = 字符串
- 代理=字符串
我在 Booking table 中创建了 id_booking,因为我想创建唯一 ID,不像 'id' 来自 sequelize 只是整数。
我怎样才能从 Booking table 获得具有 hasmany 关系的客户?
注意:外键不是 id(来自 sequelize),而是 id_booking(string, unique).
我的控制器
enter code here
db.Booking.findAll({
include: [{
model: db.Customer
}]
})
我的模型
module.exports = (sequelize, DataTypes) => {
const Booking = sequelize.define('Booking', {
id_booking: DataTypes.STRING,
agent:DataTypes.STRING,
}, {});
Booking.associate = function(models) {
Booking.hasMany(models.Customer, { foreignKey: 'id_booking'})
};
return Booking;
};
非常感谢。
如果您不想使用主键,那么您需要指定 sourceKey
in your one to many 关联,或者反向 belongsTo()
关系中的 targetKey
。
Booking.hasMany(models.Customer, {
foreignKey: 'id_booking',
sourceKey: 'id_booking',
});
我有 2 个 table。
预订。
- id = 整数(sequelize 的默认值)
- id_booking = 字符串
客户。
- id = 整数(sequelize 的默认值)
- id_booking = 字符串
- 代理=字符串
我在 Booking table 中创建了 id_booking,因为我想创建唯一 ID,不像 'id' 来自 sequelize 只是整数。
我怎样才能从 Booking table 获得具有 hasmany 关系的客户? 注意:外键不是 id(来自 sequelize),而是 id_booking(string, unique).
我的控制器
enter code here
db.Booking.findAll({
include: [{
model: db.Customer
}]
})
我的模型
module.exports = (sequelize, DataTypes) => {
const Booking = sequelize.define('Booking', {
id_booking: DataTypes.STRING,
agent:DataTypes.STRING,
}, {});
Booking.associate = function(models) {
Booking.hasMany(models.Customer, { foreignKey: 'id_booking'})
};
return Booking;
};
非常感谢。
如果您不想使用主键,那么您需要指定 sourceKey
in your one to many 关联,或者反向 belongsTo()
关系中的 targetKey
。
Booking.hasMany(models.Customer, {
foreignKey: 'id_booking',
sourceKey: 'id_booking',
});