我有个模范员工 (id,first_name,last_name,manager_id) 在这里 manager_id 是指 id 同一表的列。如何在sequelize中实现这样一个用例。我试过了,但没用
(id,first_name,last_name,manager_id)
manager_id
id
employee.belongsTo(models.employee, { foreignKey: 'manager_id' }),
rryofs0p1#
您可以定义如下关联:
employee.belongsTo(employee, {as: "Manager"}); employee.hasMany(employee, { as: "Employee", foreignKey: "manager_id", useJunctionTable: false });
然后像这样使用它
employee.findAll({ include : { model : employee , as : 'Manager' } })
或可以使用sequelize层次结构
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' } // ] } // ] } // ] });
1条答案
按热度按时间rryofs0p1#
您可以定义如下关联:
然后像这样使用它
或
可以使用sequelize层次结构