https://www.typeorm.org/transactions

// 创建一个新的查询运行器
const queryRunner = dataSource.createQueryRunner()

// 使用我们的新查询运行器建立真实的数据库连接
await queryRunner.connect()

// 现在我们可以在查询运行器上执行任何查询,例如:
await queryRunner.query("SELECT * FROM users")

// 我们还可以访问使用查询运行器创建的连接的实体管理器:
const users = await queryRunner.manager.find(User)

// 现在让我们打开一个新的事务:
await queryRunner.startTransaction()

try {
    // 在这个事务中执行一些操作:
    await queryRunner.manager.save(user1)
    await queryRunner.manager.save(user2)
    await queryRunner.manager.save(photos)

    // 现在提交事务:
    await queryRunner.commitTransaction()
} catch (err) {
    // 由于发生错误,让我们回滚所做的更改
    await queryRunner.rollbackTransaction()
} finally {
    // 您需要释放手动创建的查询运行器:
    await queryRunner.release()
}