俺用hibernate最原始的方法取得count(*)

俺用hibernate最原始的方法取得count(*)
90934966D300E863F14BC5BA7B3ACB19.JPG

     public   int  getCount(String emailGroupId, String emailBatchId)
            
throws  HibernateException  {

        Session session 
= HibernateUtil.currentSession();
        Transaction tx 
= session.beginTransaction();

        String hql 
= "select count(*) from EmailSendInfo where email_group_id = :emailGroupId and batch_id = :batchId";
        Query query 
= session.createQuery(hql);

        query.setString(
"emailGroupId", emailGroupId);
        query.setString(
"batchId", emailBatchId);

        
for (Iterator it = query.iterate(); it.hasNext();) {
            
return ((Integer) it.next()).intValue();
        }

        
return 0;
    }
俺觉得挺原始的,俺又不会用别的

Spring+Hibernate 如何使用count(*)(转) 
 
第一种方法:
String hql 
=   " select count(*) from User as user " ;
Integer count  =  (Integer)getHibernateTemplate().find(hql).listIterator().next() ;
return count.intValue() ;
第二种方法:
String hql 
=   " select count(*) from User as user " ;
return ((Integer)getHibernateTemplate().iterate(hql).next()).intValue() ;
第三种方法:
String hql 
=   " select count(*) from User as user " ;
Query query  =  getHibernateTemplate().createQuery( getSession() , hql) ;
return ((Integer)query.uniqueResult()).intValue() ;   
 
俺试了Spring 可是俺拿不到getHibernateTemplate 拿到总是空,可能是因为俺没有配置applicationContext.xml中的<beans></beans>
DAO support 需要注入一些东东吧,比如说sessionFactory... :(

你可能感兴趣的:(俺用hibernate最原始的方法取得count(*))