TypeORM 中的事务管理可以通过以下方式实现:
-
使用 DataSource.transaction():
typescriptawait dataSource.transaction(async (transactionalEntityManager) => { await transactionalEntityManager.save(user); await transactionalEntityManager.save(order); }); -
使用 Repository 的 transaction() 方法:
typescriptawait userRepository.manager.transaction(async (manager) => { await manager.save(user); }); -
使用 QueryRunner 手动控制事务:
typescriptconst 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。