Sequealize.literal 引用模型而不是表

问题描述 投票:0回答:1

有什么方法可以参考我的模型而不是

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'
        ]
    ]
});
mysql node.js sequelize.js
1个回答
0
投票

您可以采取相反的方式:在运行时从模型中获取表名称并将其替换为传递给

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\``)

如果您也想从模型中获取列名称,我认为列名称也是如此

© www.soinside.com 2019 - 2024. All rights reserved.