Hibernate Query Language HQL Nedir?

Hibernate

Hibernate Dersleri‘ne devam ediyoruz. Bu yazıda Hibernate Query Language  nedir açıklayacağız.

HQL yani Hibernate Query Language nesneye yönelik sorgulama dilidir. Bu sorgulama dilinin avantajı nesnesel olması ve bizim java sınıflarımız ile ilişkili bir yapı kurabilmemizi mümkün kılmaktadır. “Code first” yapısına daha uygun olan HQL bizi sadece koda odaklanmamızı da sağlıyor. Sorgulama işlemlerimizi SQL’de olduğu gibi tablolar ve alanları üzerinden değil java sınfları ve sınıflar üzerinde oluşturduğumuz değişkenler üzerinden yapılmasına olanak sağlamaktadır.

Biz her ne kadar HQL kullanarak SQL’den uzaklaşsak da Hibernate, HQL sonunda SQL’e çevirerek sorgulama işlemi yapmaktadır. Hibernate Query Language’nin en önemli avantajlarından birisi veritabanı bağımsız olmalıdır. Veritabanı bağımsız olarak yazdığımız HQL kullanım kolaylığı ile de öne çıkmakta. HQL’de bulunan hazır fonksiyonlar ile sorgularımızı daha kısa ve hızlı yazmamızı sağlamaktadır. HQL sorgularının sonucunda bize bir nesne dönmektedir. Sorguları önbellekleme özelliği de bulunmaktadır.

HQL için örnek verecek olursak;

Select Kullanımı

String hql = "FROM Uye"; 
Query query = session.createQuery(hql); 
List<Uye> uyeListesi = query.list();

şeklinde bir kod bloğu ile Uye tablosundaki verilerin Uye türünden bir listeye hemen aktarılmasını sağlamaktadır.

Parametre Kullanımı (Named Parameter)

String hql = "FROM UYE WHERE ID = :kisi_id";
Query query = session.createQuery(hql);
query.setParameter("kisi_id",2);
List results = query.list();

Order By Kullanımı

Query query = session.createQuery("FROM Uye U ORDER BY U.uyeAdi");
List<Uye> uyeListesi = query.list();

Delete Kullanımı

Query query = session.createQuery("delete UYE where kisi_id = : kisi_id ");
query.setParameter(“kisi_id”, 2);
int result = query.executeUpdate();

Salt SQL

Query sqlQuery = session.createSQLQuery("Select * from Uye where kisi_id = ?");
List results = sqlQuery.setString(0, 2).list();

şeklinde kullanımları mevcuttur.

Ayrıca Criteria kullanarakta sorgu işlemleri yapılabilmektedir.

Önceki : Bilgi Getirme Hibernate Dersleri Sonraki: Hibernate JPA Anotasyonu Kullanımı

Leave a Reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Burak KUTBAY 2010 - 2020
%d blogcu bunu beğendi: