Loopbackjs Loopback4 DefaultTransactionalRepository不工作

Loopbackjs Loopback4 DefaultTransactionalRepository不工作,loopbackjs,loopback,loopback4,Loopbackjs,Loopback,Loopback4,正在寻找在loopback4中实现事务管理的帮助。 使用ms sql数据库和环回连接器mssql作为连接器 我正在使用DefaultTransactionalRepository扩展存储库 下面是我在控制器中编写的代码 1. const addressTransaction = await this.addressRepo.beginTransaction(); 2. const address = await this.addressRepo.create(addressObj); 3

正在寻找在loopback4中实现事务管理的帮助。 使用ms sql数据库和环回连接器mssql作为连接器

我正在使用DefaultTransactionalRepository扩展存储库

下面是我在控制器中编写的代码

 1. const addressTransaction = await this.addressRepo.beginTransaction();
 2. const address = await this.addressRepo.create(addressObj); 
 3. addressTransaction.rollback()
问题是,我在第2行创建的记录并没有在第3行之后恢复,也并没有错误。 我还在第1行获取addressTransaction对象。以上三行只是一个例子。moto是我想还原在第2行插入的数据

如果我在DB中执行下面的代码,它的工作就非常好。这张唱片正在重播

BEGIN TRANSACTION
INSERT into addresses(ADDRESS_CITY,ADDRESS_STATE) values('123','1234')
ROLLBACK
但有些人认为连接器工作不正常

我与DBA进行了检查,看起来我们没有在上面的事务中设置隐式的_事务。有人知道如何设置隐式_事务吗


我执行事务的方式有任何问题吗?请帮助

对事务中的操作进行分组,您需要明确地将操作分配给事务

以下是:

在中执行创建、检索、更新和删除操作 事务,将事务对象添加到 标准 , , (等等)方法

在您的示例中,您需要执行以下操作:

const addressTransaction = await this.addressRepo.beginTransaction();
const address = await this.addressRepo.create(addressObj, { transaction: addressTransaction}); 
addressTransaction.rollback()