java - Hibernate criteria return page and rowcount -


using hibernate criteria trying achieve pagination problem every page fetch have make 2 db calls 1 results , total records count. there efficient way in single db call can both data or can reduce db calls.

 criteria criteria=session.createcriteria(student.class);  criteria.setresulttransformer(criteria.distinct_root_entity);  criteria.add(restrictions.ne("enquirystatus", enquiry.joined));  criteria.setmaxresults(10);  criteria.setfirstresult((paginate.getstartindex()-1)*10);   criteria.setprojection(projections.rowcount()); //here need fetch total row count , records 

yes need separate query total result count.

    query acountquery  = session.createquery("select count(s.id) student s             s.enquirystatus != :enquirystatus");            acountquery.setparameter("enquirystatus", enquiry.joined);     long resultcount = (long)acountquery.uniqueresult(); 

or

   criteria criteria=session.createcriteria(student.class);         criteria.setresulttransformer(criteria.distinct_root_entity);         criteria.add(restrictions.ne("enquirystatus", enquiry.joined));         criteria.setprojection(projections.rowcount())    long resultcount = (long)criteria.uniqueresult(); 

update

now can use same criteria results pagination , result count

  criteria criteria=session.createcriteria(student.class);      criteria.setresulttransformer(criteria.distinct_root_entity);      criteria.add(restrictions.ne("enquirystatus", enquiry.joined));      criteria.setmaxresults(10);      criteria.setfirstresult((paginate.getstartindex()-1)*10);      list<student> students = criteria.list();      criteria.setprojection(null);     criteria.setresulttransformer(criteria.distinct_root_entity);     long resultcount = (long)criteria.uniqueresult(); 

Comments

Popular posts from this blog

Unable to remove the www from url on https using .htaccess -