Javascript/Node.js
[Sequelize] composite key 를 지원하지 않음.
skydev
2020. 7. 7. 17:38
1. on: {} 키워드를 사용해서 on 조건을 명시해 줄수 있음.(jpa에서 @JoinColums와 비슷..)
let list = await this.findAll({
where: where,
limit: parseInt(w.limit || 10),
offset: parseInt(w.offset || 0),
include: [
{
model: db.productSupplier,
on: {
prodId: db.sequelize.where(db.sequelize.col('price.prodId'), '=', db.sequelize.col('productSupplier.prodId')),
suplrId: db.sequelize.where(db.sequelize.col('price.suplrId'), '=', db.sequelize.col('productSupplier.suplrId')),
},
required: true,
include: [
{
model: db.product,
required: true
},
{
model: db.supplier,
required: true
}
],
order: [['prodId', 'ASC'], ['suplrId', 'ASC'],['price', 'ASC']]
}
]
});
2. main테이블이 아닌 필드에서 검색하여야 할 상황
where.id = {
[Op.or] : [
{
[Op.in]: db.sequelize.literal("(
SELECT D.reqId
FROM T_PRODUCT
WHERE productName LIKE '%" + where.product + "%'
)")
}
]
}
위 2가지 상황에서 더 좋은 해결책이 있으면 댓글 부탁드립니다.