有什么方法可以参考我的模型而不是
Sequelize.literal
上的表格吗?在这里,我引用数据库上的表,但我想直接使用模型进行引用,在本例中为 OModel
或 RModel
。
const result = await OModel.findAll({
where: {
requestId: requestId
},
include: {
model: RModel,
attributes: [
'amount'
]
},
attributes: [
'id',
'interest',
[
Sequelize.literal('`rtable`.`amount` * `otable`.`interest`'),
'amountXInterest'
]
]
});
您可以采取相反的方式:在运行时从模型中获取表名称并将其替换为传递给
Sequelize.literal
的字符串:
// be aware it could be an object in case a model has an expilictly indicated schema,
// see https://sequelize.org/api/v6/class/src/model.js~model#static-method-getTableName
const oTableName = OModel.getTableName()
const rTableName = RModel.getTableName()
..
Sequelize.literal(`\`${rTableName}\`.\`amount\` * \`${oTableName}\`.\`interest\``)
如果您也想从模型中获取列名称,我认为列名称也是如此