sequelize js中的自引用外键 [英] Self referring foreign key in sequlize js
本文介绍了sequelize js中的自引用外键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个模型员工 (id,first_name,last_name,manager_id)
这里的 manager_id
是一个自引用外键,它引用同一个表的 id
列.我如何在 sequelize 中实现这样的用例.
Here the manager_id
is a self refering foreign key where it refers to the id
column of the same table.
How do I implement such a use case in sequelize.
我试过了,这不起作用
employee.belongsTo(models.employee, {
foreignKey: 'manager_id'
}),
推荐答案
你可以像这样定义关联:
You can define association like :
employee.belongsTo(employee, {as: "Manager"});
employee.hasMany(employee, { as: "Employee", foreignKey: "manager_id", useJunctionTable: false });
然后像使用它
employee.findAll({
include : {
model : employee ,
as : 'Manager'
}
})
或
您可以使用sequelize-hierarchy>
var employee = sequelize.define('employee', {
name: Sequelize.STRING,
manager_id: {
type: Sequelize.INTEGER,
hierarchy: true
}
});
employee.findAll({ hierarchy: true }).then(function(results) {
// results = [
// { id: 1, manager_id: null, name: 'a', children: [
// { id: 2, manager_id: 1, name: 'ab', children: [
// { id: 3, manager_id: 2, name: 'abc' }
// ] }
// ] }
// ]
});
这篇关于sequelize js中的自引用外键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文