例如,我有一个模型
const { DataTypes } = require("sequelize");
const User = sequelize.define('user', {
firstName: DataTypes.TEXT,
lastName: DataTypes.TEXT,
presentation: {
type: DataTypes.VIRTUAL,
get() {
return `${this.firstName} ${this.lastName}`;
},
set(value) {
throw new Error('Do not try to set the `fullName` value!');
}
}
});
字符串
接下来我想提出一个请求,
let queryText =
'\
SELECT \
user.firstName AS firstName, \
user.lastName AS lastName \
FROM \
user as user'
const items = await sequelize.query(queryText, { type: QueryTypes.SELECT })
型
是否可以在此类查询中包括字段“presentation”?
这是一个非常简单的例子,在真实的情况下,我有一个更复杂的查询,有很多表的连接,每个表都有自己的虚拟字段
我试过google,试过问chatGPT,试过在现有项目中寻找这样的案例,仔细阅读Sequelize文档
1条答案
按热度按时间ulmd4ohb1#
VIRTUAL
字段在模型定义中声明,因此在使用模型方法(如findAll
)的查询中使用,而原始SQL查询用于执行您指定的确切SQL查询并从中获取确切的SQL结果。如果可以的话,您可以在模型查询中使用原始SQL片段,以便在模型查询中继续使用
VIRTUAL
字段。query
方法中有instance
和model
选项,您可以使用它们将原始SQL查询结果转换为模型示例,尽管我不确定它是否符合您的目标。