Tengo problemas para encontrar y filtrar datos de campos de asociaciones hasMany, estoy usando la siguiente versión de paquetes: "sequelize": "^6.9.0", "mysql2": "^2.3.3-rc.0"
Estas son mis tablas:
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 }})Esto es asociaciones:
RequestStatus.belongsTo(RequestForm); RequestForm.hasMany(RequestStatus); RequestStatus.belongsTo(Employee); Employee.hasMany(RequestStatus);Estoy tratando de encontrar datos de RequestForm que tengan una de las siguientes condiciones:
y quiero devolver todo RequestStatus de RequestForm, por lo que no puedo sino incluirlo
Este es mi código pero no funciona y obtiene un error -> original: Error: columna desconocida 'RequestStatus.EmployeeId' en 'cláusula where'
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} ] })Escribió mal RequestStatus en Sequelize.col y no necesita indicar el campo employee_id_value , use Sequelize.where directamente:
where: { [Op.or]: [ { type: { [Op.in]: ["One", "Two"] } }, Sequelize.where(Sequelize.col("RequestStatus.EmployeeId"), Op.eq, "123e4567-e89b-12d3-a456-426614174000") ] },