【问题标题】:findAll() in Sequelize doesn't find a row created inside a transactionSequelize 中的 findAll() 找不到在事务中创建的行
【发布时间】:2020-10-12 04:14:42
【问题描述】:

我在创建一行时遇到问题,然后在同一事务下选择它。

每当我执行以下代码时,我通常会得到一个空数组,而很少会得到一个包含新创建行的数组。

这是我运行的代码示例:

return seq.transaction((tx) => {
    const options = {transaction: tx};
    return model.create(user, options)
    .then(() => {
        return model.findAll({
            include: {
                all: true
            }
    }, options)
    .then((data) => ({
        console.log(data);
    });
});

我在这里缺少一些基本的东西吗? 谢谢!

【问题讨论】:

    标签: mysql node.js sequelize.js


    【解决方案1】:

    我解决了这个问题。 我做错的是将事务作为附加参数而不是第一个参数的 JSON 的一部分提供给 findAll() 函数。

    所以而不是:

    return model.findAll({
        include: {
            all: true
        }
    }, options)
    

    我应该做的:

    return model.findAll({
        include: {
            all: true
        },
        transaction: options.transaction
    });
    

    希望此解决方案对其他人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-23
      • 1970-01-01
      • 1970-01-01
      • 2021-03-21
      • 1970-01-01
      • 2015-11-06
      • 2021-09-16
      • 2019-12-01
      相关资源
      最近更新 更多