Hibernate如何查询⼀显示count()的值

2025-03-02 10:06:03
推荐回答(4个)
回答1:

select clry,count(clry) countlcry from DmtwhB group by clry;

给它一个别名。即countlcry,然后就跟你clry一样用就行了

回答2:

解决方案:
Java代码
Configuration classicCfg = new Configuration();
classicCfg.addSqlFunction( "count", new ClassicCountFunction());
classicCfg.addSqlFunction( "avg", new ClassicAvgFunction());
classicCfg.addSqlFunction( "sum", new ClassicSumFunction());
SessionFactory classicSf = classicCfg.buildSessionFactory();


Java代码
//int count = ((Integer)query.uniqueResult()).intValue();
//改成
int count = ((Number)query.uniqueResult()).intValue();
//这样就可以两个版本同时兼容.

//第一种方法:
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();

回答3:

1、你这两个表有没有关系,没有关系的话,Hibernate不可能合并到一张表中,或者说很不容易合并到一张中...你可以先想想你那两句SQL怎么合并...结构都不知道,怎么合并...

2、问题是count(clry)的值在表中没有字段与其对应
返回的是Object[]类型的东东,你自己根据你的HQL转换一下就可以,不需要与表对应

回答4:

这个问题我以前也遇到过,比你的复杂些,用hql试了n种方法都行不通,后来用 sql搞定

Session session = this.getHibernateTemplate().getSessionFactory().openSession();

List list = session.createSQLQuery(sql).list();


${li[0]}${li[1]}

楼主试试吧