Я пытаюсь позвонить в (postgres) БД, используя sequelize (-typescript). К сожалению, это довольно сложный запрос, который в настоящее время работает просто отлично, однако сейчас я пытаюсь добавить нумерацию страниц, и ничего не получается ... код ниже ...
const list = await WorkOrderLine.findAndCountAll({
where: processParams(request),
order: [
[ { model: WorkOrder, as: 'workOrder' }, 'dueDate', 'ASC' ],
[ { model: PartOperation, as: 'currentOperation' }, 'operationNumber', 'ASC']
],
include: [
{
model: WorkOrder,
where: { orgId: authed.orgId },
required: true,
},
{
model: PartOperation,
as: 'currentOperation',
where: {
partId: { [Op.col]: 'WorkOrderLine.part_id' },
},
required: false,
include: [
{
model: ProductionOperation,
as: 'productionOperation',
where: {
workOrderLineId: { [Op.col]: 'WorkOrderLine.id' },
},
required: false
}, {
model: Operation,
as: 'operation'
}
]
}
]
});
работает просто отлично. ... Однако, когда я добавляю
separate: true
к ассоциации currentOperation, я получаю следующую ошибку ...
{ error: missing FROM-clause entry for table "currentOperation"
at Connection.parseE (/home/tzannetos/Sources/Asolare/tumult-api/node_modules/pg/lib/connection.js:604:11)
at Connection.parseMessage (/home/tzannetos/Sources/Asolare/tumult-api/node_modules/pg/lib/connection.js:401:19)
at Socket.<anonymous> (/home/tzannetos/Sources/Asolare/tumult-api/node_modules/pg/lib/connection.js:121:22)
at Socket.emit (events.js:189:13)
at Socket.EventEmitter.emit (domain.js:441:20)
at addChunk (_stream_readable.js:284:12)
at readableAddChunk (_stream_readable.js:265:11)
at Socket.Readable.push (_stream_readable.js:220:10)
at TCP.onStreamRead [as onread] (internal/stream_base_commons.js:94:17)
Определение ассоциации для currentOperation следующее: .
@HasMany(() => PartOperation, { foreignKey: 'partId', sourceKey: 'partId'})
public currentOperation: PartOperation[];
Причина, по которой я добавляю отдельное: true, заключается в том, что я хочу добавить смещение и лимит, но я не хочу, чтобы это применялось к ассоциации .... Я хочу n экземпляров. WorkOrderLine, независимо от того, сколько ProductionOperation найдено для каждого.
Я предполагаю, что проблема связана с предложением where, которое ссылается на значение из родительского объекта.
Буду очень признателен за любую помощь или совет по лучшему способу достижения этой цели.
PS Я пытался удалить ссылку на currentOperation из предложения order, но это не помогло!