У меня есть две модели, связанные, Catalog и ProductCategory. Последний имеет составной PK, 'id, language_id'. Вот упрощенные модели:
var Catalog = sequelize.define("Catalog", {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
user_id: {
type: DataTypes.INTEGER,
allowNull: false
},
product_category_id: {
type: DataTypes.STRING(7)
},
language_id: {
type: DataTypes.INTEGER
},
... more stuff ...
}
var ProductCategory = sequelize.define("ProductCategory", {
id: {
type: DataTypes.STRING(7),
primaryKey: true
},
language_id: {
type: DataTypes.INTEGER,
primaryKey: true
},
... more stuff ...
}
Catalog.belongsTo(models.ProductCategory, {foreignKey: 'product_category_id'});
Я пытаюсь включить некоторую информацию из таблицы ProductCategory, относящуюся к каталогу, но ТОЛЬКО при совпадении language_id.
На данный момент я получаю все возможные совпадения из обеих таблиц. Это запрос прямо сейчас:
Catalog.find({where:
{id: itemId},
include: {
model: models.ProductCategory,
where: {language_id: /* Catalog.language_id */}
}
})
Есть ли способ использовать атрибут из каталога для фильтрации включений, если обе модели используют один и тот же язык?
Кстати, я также попытался изменить выражение where без каких-либо последствий:
where: {'ProductCategory.language_id': 'Catalog.language_id'}