以下是一个使用 TypeORM 事务的示例:

发布时间 2023-10-25 23:32:39作者: 漫思

以下是一个使用 TypeORM 事务的示例:

typescriptimport {getConnection} from "typeorm";
import {Category, Repository} from "./entity/index";

async function run() {
const categoryRepository = getConnection().getRepository(Category);
const repository = getConnection().getRepository(Repository);

try {
// 开启事务
await repository.beginTransaction();

try {
// 执行数据库操作,例如插入、更新或删除数据
const category = new Category();
category.name = "New Category";
await categoryRepository.save(category);

// 提交事务
await repository.commit();
} catch (error) {
// 回滚事务
await repository.rollback();
throw error;
}
} catch (error) {
console.error("Error during transaction execution", error);
} finally {
// 关闭数据库连接
await getConnection().close();
}
}

run();

在上述示例中,我们首先通过 getConnection() 方法获取数据库连接,然后使用 getRepository() 方法获取实体类对应的 Repository。接下来,在 try 块中开启事务,并在其中执行一些数据库操作,例如插入、更新或删除数据。如果操作成功完成,则使用 commit() 方法提交事务;如果操作失败,则使用 rollback() 方法回滚事务。无论事务是否成功,我们都在 finally 块中关闭数据库连接。如果在开启事务或执行操作时发生异常,则可以在 catch 块中处理异常。