Hibernate Query Language HQL Nedir?
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ı |
No Comment! Be the first one.