TypeORM ile Raw SQL Kullanımı Rehberi
TypeORM ile Raw SQL Kullanımı Rehberi
TypeORM, modern Node.js uygulamalarında sıkça tercih edilen güçlü bir ORM kütüphanesidir. Veri tabanı işlemlerinde çoğunlukla repository ve entity tabanlı yapısı kullanılsa da, bazı gelişmiş sorgularda veya performans gerekçeleriyle Raw SQL kullanımı gerekebilir. Bu makalede, TypeORM ile Raw SQL kullanımı konusunu detaylarıyla ele alacak ve gerçek dünya örnekleriyle açıklayacağız.
TypeORM ile Raw SQL Sorguları Nasıl Çalışır?
TypeORM, repository ve entity tabanlı sorgulara ek olarak doğrudan veri tabanına SQL sorguları gönderebilmenize imkan tanır. Özellikle karmaşık join işlemlerinde, toplu güncelleme veya hesaplama gerektiren senaryolarda raw query (ham sorgu) yöntemleri büyük avantaj sunar. TypeORM'un sağladığı query ve queryRunner fonksiyonları ile güvenli ve etkili şekilde Raw SQL kullanmak mümkündür.
Query Method Kullanımı
Raw SQL sorgularını, mevcut bir veri tabanı bağlantısı üzerinden query fonksiyonunu kullanarak kolayca çalıştırabilirsiniz. Aşağıda bir örnek yer almaktadır:
// Kullanıcı listesini çeken bir Raw SQL sorgusu
const users = await dataSource.query(
"SELECT * FROM user WHERE isActive = ?", [true]
);
console.log(users);
Burada ? parametresi yer tutucu olarak kullanılır ve ilgili değerler dizi olarak gönderilir. Bu yöntem SQL Injection riskini azaltır.
QueryRunner ile İleri Seviye Raw SQL
Daha gelişmiş işlemler (örneğin; transaction içinde birden fazla Raw SQL sorgusu çalıştırmak) için QueryRunner nesnesi kullanılabilir:
// Transaction yönetimi ile Raw SQL örneği
const queryRunner = dataSource.createQueryRunner();
await queryRunner.connect();
await queryRunner.startTransaction();
try {
await queryRunner.query(
"UPDATE user SET lastLogin = NOW() WHERE id = ?",
[userId]
);
await queryRunner.commitTransaction();
} catch (error) {
await queryRunner.rollbackTransaction();
throw error;
} finally {
await queryRunner.release();
}
Bu yapı hem güvenli hem esnek raw SQL kullanımı için idealdir, ayrıca hata yönetimi ve rollback desteği sağlar.
Sonuç ve İpuçları
TypeORM ile Raw SQL kullanımı, projelerde esneklik ve maksimum kontrol gerektiren durumlar için oldukça elverişlidir. Ancak gereksiz kullanımdan kaçınılmalı ve güvenlik açısından parametreli sorgular tercih edilmelidir. TypeORM'un kendi query builder ve repository özellikleri yeterli gelmediğinde raw SQL ile kısa ve performanslı kodlar yazmak mümkündür. TypeORM ile Raw SQL kullanımı hakkındaki bu rehber, uygulamalarınıza esneklik katacaktır.

Yorum Gönder