Hibernate 解决SQL count(*)的问题.

来源:互联网 发布:mac dock栏 应用程序 编辑:程序博客网 时间:2024/05/07 22:35
Hibernate 解决SQL count(*)的问题.

// 用于hibernate 2.x
protected String getCountSql(String originalHql, net.sf.hibernate.SessionFactory sessionFactory) throws Exception {
QueryTranslator translator = new QueryTranslator(originalHql);

translator.compile((net.sf.hibernate.engine.SessionFactoryImplementor)sessionFactory, Collections.EMPTY_MAP, false);

return "select count(*) from (" + translator.getSQLString() + ") tmp_count_t";
}
// 用于hibernate 3.x
protected String getCountSql(String originalHql, org.hibernate.SessionFactory sessionFactory) throws Exception {
QueryTranslatorImpl queryTranslator = new QueryTranslatorImpl(originalHql, originalHql,
Collections.EMPTY_MAP, (org.hibernate.engine.SessionFactoryImplementor)sessionFactory);

queryTranslator.compile(Collections.EMPTY_MAP, false);

return "select count(*) from (" + queryTranslator.getSQLString() + ") tmp_count_t";
}

String strHQL = "Select count(*) From tb_po";
Long count = (Long)session.createQuery(strHQL).uniqueResult();

原创粉丝点击