Categories: asp.net, c#, nhibernate Posted by Admin on 5/7/2011 6:01 PM | Comments (0)

Bilindiği üzere tüm veritabanlarının veri sorgulamak için birbirlerine benzer sorgulama dili vardır(Mssql için T-SQL, oracle için PL-SQL gibi).  Hibernate ortamında veritabanından bağımsız düşünüldüğü için bu sorgulama dilleri arasındaki farklılığı ortadan kaldırmak amacıyla hibernate yapısal sorgulama dili(Hibernate Query Language) kullanılmaktadır. Hibernate yazılan HQL'i değerlendirip kullanılan veritabanına uygun dile dünüştürerek kullanır. Bu nedenle eğer HQL kullanarak daha esnek bir şekilde sorgulama yapmak istiyorsak bu dili öğrenmek icab ediyor. Aynı işlevi Criteria kullarak da belirtebiliyoruz. Ancak bu başka bir yazı konusudur. Bu yazıda HQL'in temel işlevlerini değerlendiriyor olacağım.

Küçük-Büyük Harf duyarlılığı:

Kullanılan sınıf isimlerine dayalı sorgularda sınıf ve sınıfın üyelerinde küçük-büyük harf duyarlılığı vardır. Ogrenci sınıfı ogRenCi gibi kullanılamaz. Ancak HQL'in ayrılmış anahtar kelimelerinde (reserved keywords) bu durum söz konusu değildir.(select, SELECT yada seLEct gibi kullanılabilir.


Select sözcüğü:

Select sözcüğünün kullanımına yönelik kullanımlar aşağıdaki gibidir. Takma isim ile kullanılan veriler için bilinçli seçim yapmak için takmaIsim.Alan1 gibi kullanılır.

select * from Ogrenci

select ogr.AdiSoyadi from Ogrenci ogr

select r.AdiSoyadi, t.AdiSoyadi from Ogrenci r, Ogretmen t

select r.AdiSoyadi, t.AdiSoyadi from Ogrenci r inner join Ogretmen t

select ogr.Numarasi, ogr.AdiSoyadi from Ogrenci ogr where ogr.AdiSoyadi like '%ali%'


From sözüğü:

Olası bazı from kullanımları aşağıdaki gibidir. Takma isim için kullanılan as sözcüğü opsiyoneldir.

from Ogrenci

from Ogrenci as ogr

from Ogrenci as r, Ogretmen as t

from Ogrenci r, Ogretmen t


Join işlemleri:

Hibernate ANSI SQL standartlarında belirtilmiş join tiplerini destekliyor. Bunlar: inner join, left outer join, right outer join ve full outer join şeklinde tanımlanmalıdır.

select r.AdiSoyadi, t.AdiSoyadi from Ogrenci r inner join Ogretmen t

 select r.AdiSoyadi, t.AdiSoyadi from Ogrenci r inner join Ogretmen t left outer join Sinif s


Kahve ısmarlayın

Aşağıdaki kahve simgesine tıklayarak bana paypal üzerinden kahve ısmarlayabilirsiniz. Kahveye olan düşkünlüğü ile bilinen birisi olarak büyük bir zevkle içeceğimden emin olabilirsiniz.


Add comment




biuquote
Loading