Множественные ассоциации сиквелизации - PullRequest
0 голосов
/ 28 мая 2020

У меня есть несколько ассоциаций между моделями, например:

Patient.hasMany(Transaction, {
    as: 'transactions',
    foreignKey: 'patient_id',
    sourceKey: 'id'
});

Transaction.belongsTo(Patient, {
    as: 'patient',
    foreignKey: 'patient_id',
    targetKey: 'id'
});

Transaction.hasMany(Transaction, {
    as: 'transactions',
    foreignKey: 'item_to_pay',
    sourceKey: 'id'
});

Я пишу запрос, чтобы получить список транзакций, принадлежащих пациенту, и включить связанные с ними модели:

Transaction.findAll({
    where: {
        patient_id: 1
    },
    include: [{
        model: Patient,
        as: 'patient',
        attributes: ['first_name']
    }, {
        model: Transaction,
        as: 'transactions',
        include: [{
            model: Patient,
            as: 'patient',
            attributes: ['first_name']
        }]
    }],
});

Однако, когда результат возвращается, он не включает вторую вложенную модель пациента, как я ожидал.

Я также попытался написать другой запрос, чтобы увидеть, смогу ли я получить желаемое result:

Transaction.findAll({
    where: {
        patient_id: 1
    },
    include: [{
        model: Transaction,
        as: 'transactions',
        include: [{
            model: Patient,
            as: 'patient',
            attributes: ['first_name']
        }]
    }],
});

Но этот запрос выдает ошибку и возвращает «Неизвестный столбец« Patient.id »в списке полей».

Кто-нибудь видит что-то не так с моим запросом или ассоциациями? Я что-то не понимаю в ассоциациях здесь?

...