Тъй като това, което се опитвате да направите, е самоасоцииране, трябва само да извикате hasMany веднъж, което ще създаде съединителна таблица
User.hasMany(User, { as: 'Contacts', joinTableName: 'userHasContacts'})
Което ще създаде таблицата userHasContacts като:
CREATE TABLE IF NOT EXISTS `userHasContacts` (`userId` INTEGER , `ContactsId` INTEGER , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`userId`,`ContactsId`)) ENGINE=InnoDB;
За да намерите потребители и техните контакти, можете да направите следното:
User.find({ where: ..., include: [{model: User, as: 'Contacts'}]})