Vì những gì bạn đang cố gắng làm là một liên kết tự, bạn chỉ cần gọi hasMany một lần, điều này sẽ tạo ra một bảng nối
User.hasMany(User, { as: 'Contacts', joinTableName: 'userHasContacts'})
Điều này sẽ tạo bảng userHasContacts dưới dạng:
CREATE TABLE IF NOT EXISTS `userHasContacts` (`userId` INTEGER , `ContactsId` INTEGER , `createdAt` DATETIME NOT NULL, `updatedAt` DATETIME NOT NULL, PRIMARY KEY (`userId`,`ContactsId`)) ENGINE=InnoDB;
Sau đó, để tìm người dùng và địa chỉ liên hệ của họ, bạn có thể thực hiện:
User.find({ where: ..., include: [{model: User, as: 'Contacts'}]})