package roseindia.tutorial.hibernate;

import java.util.Iterator;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.criterion.Projections;

public class hibernateProjectionExample {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Session sess = null;
		try{
			SessionFactory fact = new Configuration().configure().buildSessionFactory();
			sess = fact.openSession();
			Criteria crit = sess.createCriteria(Insurance.class);
			crit.setProjection(Projections.rowCount());
			List result = crit.list();
			System.out.println("No. of rows: "+result);
			crit.setProjection(Projections.distinct(Projections.countDistinct("insuranceName")));
			List distList = crit.list();
			System.out.println("Distinct Count:  "+ distList);
		}
		catch(Exception e){
			System.out.println(e.getMessage());
		}
	}

}
