gpt4 book ai didi

include - Sequelize : Scope with where condition not working with singular and plural

转载 作者:行者123 更新时间:2023-12-03 22:33:21 25 4
gpt4 key购买 nike

我希望在运行 1:1 和 N:N 关系的 child 中设置一个有效条件,就像这个例子 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 的 Documentation 中看到两个 Method

关于include - Sequelize : Scope with where condition not working with singular and plural,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64730171/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com