mój problem jest dość prosta:SequelizeJS - hasMany do relacjach hasMany na tym samym stole z tabeli łączącej
Mam tabelę o nazwie użytkowników. Użytkownicy ci mogą mieć wiele kontaktów. Te kontakty to inni użytkownicy.
Więc mam tabeli o nazwie userHasContacts, z identyfikatorem właściciela (userid) oraz identyfikator kontaktu (ContactID).
Oba te klucze obce odnoszą się do tabeli użytkowników.
Oto mój piękny schemat:
----------------
______________|____ ____|____
| userHasContacts | | users |
------------------- ---------
| #userID | | id |
| #contactID | ---------
------------------- |
| |
----------------
W sequelize moim logiki, chciałbym napisać:
Users.hasMany(Users, {foreignKey: 'userID', joinTableName: 'userHasContacts'});
Users.hasMany(Users, {as: 'Contacts', foreignKey: 'contactID', joinTableName: 'userHasContacts'});
Ale wydaje się, że to nie działa w ten sposób, i to było 2 godziny Próbuję różnych sposobów napisania tej relacji ...
Jedyną linią, która zadziałała dla mnie, było
Users.hasMany(UserHasContacts, {foreignKey: 'contactID', joinTableName: 'userHasContacts'});
UserHasContacts.findAndCountAll({ where: {userID: id} }).success(function(result) {
res.json(result);
});
Ale wtedy nie mogę dołączyć użytkowników stolik w moim zapytaniu znalezienia (poprzez Eager loading) i po prostu zwraca dane wewnątrz userHasContacts.
Jeśli ktoś ma podpowiedź, to zapraszamy!
Dzięki z góry!