Il mio problema è abbastanza semplice:SequelizeJS - hasMany al hasMany sullo stesso tavolo con un tavolo unirsi
Ho una tabella denominata utenti. Questi utenti possono avere molti contatti. Questi contatti sono altri utenti.
quindi ho una tabella denominata userHasContacts, con l'id del proprietario (userID), e l'id del contatto (contactID ).
Entrambe le chiavi esterne fanno riferimento alla tabella per gli utenti.
Qui è la mia bella figura:
----------------
______________|____ ____|____
| userHasContacts | | users |
------------------- ---------
| #userID | | id |
| #contactID | ---------
------------------- |
| |
----------------
In sequelize, nella mia logica, avrei scritto:
Users.hasMany(Users, {foreignKey: 'userID', joinTableName: 'userHasContacts'});
Users.hasMany(Users, {as: 'Contacts', foreignKey: 'contactID', joinTableName: 'userHasContacts'});
ma sembra che non funziona in questo modo, ed è stato 2 ore sto provando diversi modi di scrivere questa relazione ...
l'unica linea che ha funzionato per me è stato
Users.hasMany(UserHasContacts, {foreignKey: 'contactID', joinTableName: 'userHasContacts'});
UserHasContacts.findAndCountAll({ where: {userID: id} }).success(function(result) {
res.json(result);
});
Ma allora non posso aderire utenti tabella nella mia interrogazione find (via Eager loading) e restituisce semplicemente i dati all'interno userHasContacts.
Se qualcuno ha un suggerimento, siete i benvenuti!
Grazie per l'anticipo!