gpt4 book ai didi

mysql - 使用事务和使用限制对 findAll 查询进行后续处理并抵消其不起作用

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

我试图在 sequelize 上使用事务添加分页,但是当我添加限制和偏移时,它显示的错误为 SequelizeDatabaseError: Invalid column name 'typeId'。

try {
await sequelize.transaction(async (transaction) => {
data = await Test.findAll({
order: [['id', 'DESC']],
where: { type: 'Y' },
attributes: ['id', 'type', 'name'],
include: [
{
model: xyz,
as: 'xyz',
attributes: ['id'],
include: {
model: efg,
as: 'efg',
attributes: ['id', 'typeId'],
},
},
{
model: abc,
as: 'abc',
attributes: ['id'],
include: {
model: ijk,
as: 'ijk',
attributes: ['id', 'name'],
},
}
],
transaction,
limit: 10,
offset: 0,
}).then(res=>{
return res;
})
});
} catch(e) {

}

任何建议将不胜感激。谢谢!

最佳答案

您需要将交易作为第二个参数,如下所示 -

try {
await sequelize.transaction(async (transaction) => {
data = await Test.findAll({
order: [['id', 'DESC']],
where: { type: 'Y' },
attributes: ['id', 'type', 'name'],
include: [
{
model: xyz,
as: 'xyz',
attributes: ['id'],
include: {
model: efg,
as: 'efg',
attributes: ['id', 'typeId'],
},
},
{
model: abc,
as: 'abc',
attributes: ['id'],
include: {
model: ijk,
as: 'ijk',
attributes: ['id', 'name'],
},
}
],
// comment the line below
// transaction,
limit: 10,
offset: 0,
},
{ transaction }
).then(res=>{
return res;
})
});
} catch(e) {

}

我知道 Official documentation 描述了为 findAll 方法执行事务的方式你已经实现了,但是当我尝试时,这在我的情况下没有按预期工作。

关于mysql - 使用事务和使用限制对 findAll 查询进行后续处理并抵消其不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60636326/

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