乐闻世界logo
搜索文章和话题

TypeORM 中如何处理事务?

2月17日 22:47

TypeORM 中的事务管理可以通过以下方式实现:

  1. 使用 DataSource.transaction()

    typescript
    await dataSource.transaction(async (transactionalEntityManager) => { await transactionalEntityManager.save(user); await transactionalEntityManager.save(order); });
  2. 使用 Repository 的 transaction() 方法

    typescript
    await userRepository.manager.transaction(async (manager) => { await manager.save(user); });
  3. 使用 QueryRunner 手动控制事务

    typescript
    const queryRunner = dataSource.createQueryRunner(); await queryRunner.connect(); await queryRunner.startTransaction(); try { await queryRunner.manager.save(user); await queryRunner.commitTransaction(); } catch (err) { await queryRunner.rollbackTransaction(); } finally { await queryRunner.release(); }

事务的隔离级别可以通过设置 isolationLevel 来配置,包括 READ UNCOMMITTED、READ COMMITTED、REPEATABLE READ 和 SERIALIZABLE。

标签:TypeORM