原始查询的Sequelize事务回滚不起作用

时间:2015-09-04 17:01:03

标签: transactions sequelize.js rollback

Sequelize rollback对我的交易不起作用。

这是一个示例代码:

NSURLConnection

我检查了控制台:

执行(aaf94974-d646-4056-9cfa-0c53f1b1b3e3):START TRANSACTION;

执行(aaf94974-d646-4056-9cfa-0c53f1b1b3e3):SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE;

执行(默认):DELETE FROM任务WHERE id = 6

执行(aaf94974-d646-4056-9cfa-0c53f1b1b3e3):ROLLBACK;

但回滚不起作用。

1 个答案:

答案 0 :(得分:1)

这在sequalize文档中没有描述,但我找到了usage example in sequalize tests

return this.sequelize.query(query, { transaction: t }).bind(this).then(function() {
    return this.User.create({ name: 'foo' });
 })

因此,您只需将transaction选项传递给query来电:

return sequelize.query('DELETE FROM Task WHERE id=:id',
{
    replacements:{"id":id},
    type: sequelize.QueryTypes.SELECT
})