Hibernate Dersleri – Criteria Queries
Hibernate Dersleri‘ne devam ediyoruz.
Önceki derslerde HQL yapısına ve NamedQuery kullarak sorgu yaptık. Bu yazıda ise Criteria Queries kullanımına bakacağız. Criteria Queries adından da anlaşıldığı gibi sorgularımızı kriterler ekleyerek bir sorgulama yöntemidir.
Her dersimizde olduğu gibi Üye örneğimizden gidelim. Üye sınıfımızı tekrar yazalım.
@Entity public class Uye implements Serializable { private int uyeId; private String uyeAdi; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column(name = "uye_id") public int getUyeId() { return uyeId; } public void setUyeId(int uyeId) { this.uyeId = uyeId; } public String getUyeAdi() { return uyeAdi; } public void setUyeAdi(String uyeAdi) { this.uyeAdi = uyeAdi; } }
Üye sınıfımızı oluşturduk. Şimdi Criteria Queries kullanarak üyeler hakkında sorgulamalar yapalım.
public class App{ public static void main(String[] args) { SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); Session session = sessionFactory.getCurrentSession(); Transaction tx = session.beginTransaction(); Criteria criteria = session.createCriteria(Uye.class); //Tüm kayıtları getirir List<Uye> uyeListesi = criteria.list(); for(Uye uye : uyeListesi){ System.out.println("ID="+uye.getId()+", Adı="+uye.getAdi()); } //Id'si 4 olan üye criteria = session.createCriteria(Uyeclass) .add(Restrictions.eq("uye_id", new Long(4))); Uye uye = (Uye) criteria.uniqueResult(); System.out.println("Adı=" + uye.getAdi() +); //Adında b ile geçen kişiler empList = session.createCriteria(Uye.class) .add(Restrictions.like("adi", "%b%")) .list(); for(Uye uy : uyeListesi){ System.out.println("Sonuç:"+uy.getAdi()+); } //Adında b ile geçen kayıt sayısı long kayitSayisi = (Long) session.createCriteria(Uye.class) .setProjection(Projections.rowCount()) .add(Restrictions.like("adi", "%b%")) .uniqueResult(); System.out.println("Sonuç = "+kayitSayisi); tx.commit(); sessionFactory.close(); } }
Criteria Queries kullanarak persist sınıfımıdan java yazar gibi kriterler eklenerek sorgularak yazarak sonuça ulaşmamız mümkün.
Önceki Ders: NamedQuery Nedir? Kullanımı | Hibernate Dersleri | Sonraki Ders: Hibernate & JPA Anotasyonu Kullanımı |
No Comment! Be the first one.