[英]Sequelize : Scope with where condition not working with singular and plural
我希望在運行 1:1 和 N:N 關系的孩子中設置一個有效條件,就像這個例子 1:1
// Find all projects with a least one task where task.state === project.state
Project.findAll({
include: [{
model: Task,
where: { state: Sequelize.col('project.state') }
}]
})
只有表的名稱根據關系將名稱從“project”更改為“projects”在這種情況下,“project.state”將起作用,但來自具有 N:N 關聯的模型的請求將給出錯誤:
"invalid reference to FROM-clause entry for table \" project \ ""
條件應該是“projects.state”
如果我在每個查詢的 include 中使用“as :project”,但如果有人有好主意,則可以工作。
謝謝你的幫助
最好的方法是強制 sequelize.js 使用模型中提到的原始名稱,同時在數據庫中創建表您可以使 sequelize.js 使用給定的名稱而不是復數名稱
var db_instance = new Sequelize(config.DB.database, config.DB.username, config.DB.password, {
host: config.DB.host,
dialect: config.DB.dialect,
define: {
timestamps: true,
freezeTableName: true
},
logging: false
});
或者
您也可以直接告訴 Sequelize 表的名稱:
sequelize.define('project', {
// ... (attributes)
}, {
tableName: 'project'
});
您可以在 sequelize.js 的文檔中看到這兩種方法
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.