以下是一个使用 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
块中处理异常。