gpt4 book ai didi

orm - SequelizeJS 按重命名的属性排序

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

我遇到了一个异常,在任何地方都找不到解决方案。看起来像是 sequelizeJs 的 bug。

这是问题:

我有两个模型

module.exports = db.sequelize.define('user', {
// id is added automatically
createdAt: {
type: Sequelize.DATE,
field: 'created_at'
}
})

module.exports = db.sequelize.define('question', {
// id is added automatically
userId: {
type: Sequelize.BIGINT,
field: 'user_id'
}
})

User.hasMany(Question,{foreignKey:'userId',as:'questions'})

然后我有一个查询:
  models.User.findAll({
limit:limit,
order:[['createdAt','DESC']],
include : [{
{
model:models.Question,
as:"questions"
},]
})

我收到一个异常说:“SequelizeDatabaseError:‘order 子句’中的未知列‘user.created_at’”

下面是生成的sql代码:

SELECT ***** FROM (SELECT user . id , user . created_at AS createdAt FROM user AS user7104|771616161616161616161617161616161617161616161617161616161616161716104 | DESC 限制 10) AS user左外连接 created_at AS user开启 question . questions = user . id 订购者 questions . user_id 发展研究中心

似乎 order by 应用了两次。第二次,“created_at”已重命名为“createdAt”。这就是 db 提示“找不到 user.created_at”的原因。

我的问题是如何解决这个问题,以便我可以运行我的查询。我找不到任何可用的解决方案。为什么 Sequelize 两次应用“order by”?看起来没必要。

最佳答案

这似乎是一个开放的问题

See GitHub

但是,您可以尝试明确说明要在两个模型上查询的属性。

关于orm - SequelizeJS 按重命名的属性排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48252681/

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