Benim sorunum ile aynı masada hasMany için hasMany oldukça basittir:SequelizeJS - Bir katılmak masanın
Ben kullanıcıları adında bir tablo var. Bu kullanıcıların çok fazla kişisi olabilir. Bu kişiler diğer kullanıcılar.
Yani sahibine (userID) kimlikli userHasContacts adında bir tablo, ve temas (kişi kimliği) ait kimliği bulunmaz.
Her iki yabancı anahtar da kullanıcıları tablosuna başvuruyor.
----------------
______________|____ ____|____
| userHasContacts | | users |
------------------- ---------
| #userID | | id |
| #contactID | ---------
------------------- |
| |
----------------
sequelize, benim mantığında, ben yazardım: Burada
benim güzel diyagramıdırUsers.hasMany(Users, {foreignKey: 'userID', joinTableName: 'userHasContacts'});
Users.hasMany(Users, {as: 'Contacts', foreignKey: 'contactID', joinTableName: 'userHasContacts'});
Ama bu şekilde çalışmıyor gibi görünüyor ve bu oldu 2 saat Bu ilişkiyi yazmanın çeşitli yollarını deniyorum ...
Benim için çalışan tek satır
Users.hasMany(UserHasContacts, {foreignKey: 'contactID', joinTableName: 'userHasContacts'});
UserHasContacts.findAndCountAll({ where: {userID: id} }).success(function(result) {
res.json(result);
});
Ama sonra (Eager loading üzerinden) benim bulmak sorgusunda kullanıcılar tablo katılamaz ve sadece userHasContacts içindeki verileri döndürür.
Herhangi bir ipucu varsa, hoş geldiniz!
Önceden teşekkürler!