Hibernate Dersleri – Criteria Queries

Hibernate

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ı

Leave a Reply

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

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