İçeriğe geç

Hibernate Criteria Kullanımı

Spread the love

Hibernate criteria kullanımı ne işe yarar, neden kullanılır, nasıl kullanılır, özellikleri nelerdir gibi soruları cevaplayacağım.
Hibernate kriteria özelliği database ile olan ilişkileri daha OOP mantığını yakınlaştırmak için vardır. Yani artık eskisi gibi sql queryleri yazmaya gerek kalmadan veya hql yazmaya gerek kalmadan tamamiyle OOP mantığı oturtulmuş şekilde databaseden istenilen veri çekilebilir durumdadır.
Criteria özelliği ile sql sorguları veya hql kodlarında where kısmına yazılan her şey OOP mantığıyla yapılabilir.

Tablodan koşulsuz veri çekme

Criteria sınıfı session sınıfından createCriteria methodu çağıralarak oluşturulur.

1
2
3
Criteria criteria = session.createCriteria(Employee.class);
List EmployeeList= criteria.list();
session.close();

Kriter Ekleme

Queryler yazarken çoğu zaman koşullara ihtiyacımız vardır. id si 75 e eşit olan değer veya ismi osman olan kullanıcılar vb. Bunun için oluşturulan criteria objesine Restrictions eklemek gerekir. Employee tablosundan id’si bir olan kullanıcı çağıran

1
2
3
4
Criteria criteria = session.createCriteria(Employee.class);
criteria.add(Restrictions.eq("id",1));
List EmployeeList = criteria.list();
session.close();

Burada önemli olan Restrictions sınıfının “eq” methodudur. Bu equalın kısaltmasıdır ve eşittir anlamına gelmektedir.

Restrictions.eq(“id”,1) id 1 e eşit olan veri
Restrictions.gt(“id”,100) id 100 den büyük olan veriler
Restrictions.lt(“id”,1) id 100 den küçük olan veriler
Restrictions.like(“name”,”A%”) ismi a ile başlayan kullanıcılar
Restrictions.between(“id”,1,50) id 1 ile 50 arasındaki veriler
Restrictions.isNull(“adress”) adres sütunu boş olan veriler
Restrictions.isNotNull(“adress”) adres sütunu boş olmayan veriler
Order.asc(“name”) name sütunu sirali gelir

Criteria Mantıksal ifadeler Ekleme

Criteria kullanırken AND ve OR gibi mantıksal ifadeler de eklenebilir. Bu ifadeleri eklemek için aşağıdaki kod uygulanır.

1
2
3
4
5
6
Criteria criteria = session.createCriteria(Employee.class);
Criterion cNameLike = Restrictions.like("name","A%");
Criterion cEqualSurname = Restrictions.eq("surname","Çetin");
criteria.add(Restrictions.and(cNameLike,cEqualSurname));
List<Siparis> siparisList = criteria.list();
session.close();
Tarih:HibernateVeri Tabanı

İlk Yorumu Siz Yapın

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.