TypeORM Transactions Kullanımı Rehberi


TypeORM Transactions Kullanımı Rehberi

TypeORM Transactions Nedir?

TypeORM Transactions kullanımı, uygulamanızda birden fazla veritabanı işlemini güvenli ve tutarlı şekilde gerçekleştirmek istediğinizde devreye girer. Transaction, bir grup işlemin ya hep birlikte başarılı olması ya da başarısızlık halinde hiçbirinin gerçekleştirilmemesi prensibini sağlar. TypeORM ile transaction'ları doğru şekilde kullanarak, özellikle bankacılık veya e-ticaret gibi kritik alanlardaki veri bütünlüğünü koruyabilirsiniz.

TypeORM Transactions Nasıl Kullanılır?

TypeORM'de transactions birkaç farklı yöntemle yönetilebilir. En yaygın kullanılanları @Transaction() dekoratörü ve QueryRunner ile manuel transaction başlatma yöntemleridir. Karmaşık işlemlerde genellikle QueryRunner tercih edilir çünkü işlem üzerinde tam kontrol sunar.

@Transaction Dekoratörü ile Kullanım

import { Transaction, TransactionManager, EntityManager } from "typeorm";

export class UserService {
  @Transaction()
  async createUserAndProfile(
    userData: any,
    @TransactionManager() manager?: EntityManager,
  ) {
    const user = await manager.save(User, userData);
    const profile = await manager.save(Profile, { userId: user.id });
    return { user, profile };
  }
}

Bu örnekte, User ve Profile tablolarına yapılan eklemeler tek bir transaction içinde yürütülür. Yani herhangi bir aşamada hata oluşursa, tüm işlemler geri alınır.

QueryRunner ile Manuel Transaction

import { getConnection } from "typeorm";

const connection = getConnection();
const queryRunner = connection.createQueryRunner();

await queryRunner.connect();
await queryRunner.startTransaction();
try {
  await queryRunner.manager.save(User, { name: "Ahmet" });
  await queryRunner.manager.save(Profile, { bio: "Yazılımcı" });
  await queryRunner.commitTransaction();
} catch (err) {
  await queryRunner.rollbackTransaction();
} finally {
  await queryRunner.release();
}

QueryRunner ile işlemleri manuel kontrol ederek daha esnek ve güvenli transaction yönetimi sağlanabilir. Özellikle birden fazla tabloya veya iş kurallarına dayalı karmaşık işlemler için idealdir.

Sonuç: TypeORM Transactions Kullanımı Avantajları

TypeORM Transactions kullanımı, Node.js projelerinizde veri bütünlüğü ve hata yönetimi açısından büyük kolaylık sağlar. Transaction kullanımını doğru konumlandırmak, hem kodunuzu daha robust (sağlam) hem de güvenli hale getirir. Özellikle finansal işlemler veya kritik veri güncellemelerinde transactions vazgeçilmezdir. SEO açısından bakıldığında, yeni başlayanlar ve ileri seviye geliştiriciler için TypeORM Transactions kullanımı hem okunaklı kod hem de veri güvenliği avantajı sunar.