[寻求帮助以在Loopback中实施事务管理4。使用ms-sql数据库和loopback-connector-mssql作为连接器。
我正在使用DefaultTransactionalRepository扩展存储库。
下面是我正在控制器内部编写的代码。
1. const addressTransaction = await this.addressRepo.beginTransaction();
2. const address = await this.addressRepo.create(addressObj);
3. addressTransaction.rollback()
问题是,我在第2行创建的记录在第3行之后没有恢复,也没有错误。我也在第1行获得了addressTransaction对象,以上3行只是一个示例。 moto是我要还原回在第2行插入的数据。
如果我将下面的代码执行到数据库中,它的工作就很好了。记录正在回滚。
BEGIN TRANSACTION
INSERT into addresses(ADDRESS_CITY,ADDRESS_STATE) values('123','1234')
ROLLBACK
但是有些连接器无法正常工作。
我已与DBA核对过,看来我们没有在上述交易中设置隐式事务。有谁知道如何设置implicit_transactions。
我执行交易方式的任何问题?请帮助
要在事务中对操作进行分组,您需要明确地将操作分配给事务。
这里是official documentation of loopback4 transaction support:
要在其中执行创建,检索,更新和删除操作交易,将交易对象添加到的
Options
参数标准create()
,create()
,update()
(依此类推)方法。
在您的示例中,您需要执行以下操作:
update()