javascript - Sequelize:按 hassMany 关联字段过滤表
问题描述
我在从 hasMany 关联字段中查找和过滤数据时遇到问题,正在使用以下软件包版本:“sequelize”:“^6.9.0”、“mysql2”:“^2.3.3-rc.0”
这是我的桌子:
const RequestForm = sequelize.define('RequestForm', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
noUpdate : true
},
type: DataTypes.STRING
})
const RequestStatus = sequelize.define('RequestStatus', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
noUpdate : true
},
})
const Employee = sequelize.define('Employee', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,
primaryKey: true,
allowNull: false,
noUpdate : true
}})
这是关联:
RequestStatus.belongsTo(RequestForm);
RequestForm.hasMany(RequestStatus);
RequestStatus.belongsTo(Employee);
Employee.hasMany(RequestStatus);
我正在尝试查找具有以下条件之一的 RequestForm 数据:
- RequestForm 类型 = “一个”
- RequestForm 类型 = “二”
- RequestStatus EmployeeId(FK) 之一等于“123e4567-e89b-12d3-a456-426614174000”
我想返回RequestForm的所有RequestStatus,所以我不能但在哪里包括
这我的代码但不工作并得到错误 - >原始:错误:'where子句'中的未知列'RequestStatus.EmployeeId'
RequestForm.find({
where: {
[Op.or]: [
{type: {[Op.in]: ["One", "Two"]}},
{
employee_id_value: Sequelize.where(
Sequelize.col("RequestStatuses.EmployeeId"),
{
[Op.eq]: "123e4567-e89b-12d3-a456-426614174000",
}
)
},
]
},
include:[
{
model: RequestStatus,
attributes: ['id', 'EmployeeId'],
required: false,
},
{Other Models}
]
})
解决方案
你拼错RequestStatus
了Sequelize.col
,不需要指明employee_id_value
字段,Sequelize.where
直接使用:
where: {
[Op.or]: [
{
type: {
[Op.in]: ["One", "Two"]
}
},
Sequelize.where(Sequelize.col("RequestStatus.EmployeeId"),
Op.eq, "123e4567-e89b-12d3-a456-426614174000")
]
},
推荐阅读
- java - 是否可以创建一个单独的类来保留所有 Java-XML 链接代码?
- javascript - 根据其他属性的值动态设置属性
- mysql - 错误 2013 (HY000) 试图导入 mariadb 数据库
- swift - 模块“Firebase”没有名为“functions”的成员
- c++ - 未定义对 soci::session::get_last_insert_id 的引用
- java - 菜单操作项的 setVisibility
- angular - 当我们只有一个要接收的对象时如何在Angular 8中获取数据
- flutter - 应用深色模式会触发 StatefulWidget 的构建方法几次
- java - 如何在调试器中查看 java.util.HashMap 子类中的字段?
- python - 如何创建要在模型 pandas python 中使用的汇总表