转贴:hibernate取得count(*)
2007年07月19日 星期四 下午 07:14
俺用hibernate最原始的方法取得count(*)
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(*)(转) 俺试了Spring 可是俺拿不到getHibernateTemplate 拿到总是空,可能是因为俺没有配置applicationContext.xml中的<beans></beans>
第一种方法: 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() ; DAO support 需要注入一些东东吧,比如说sessionFactory... :( |