select clry,count(clry) countlcry from DmtwhB group by clry;
给它一个别名。即countlcry,然后就跟你clry一样用就行了
解决方案:
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();
1、你这两个表有没有关系,没有关系的话,Hibernate不可能合并到一张表中,或者说很不容易合并到一张中...你可以先想想你那两句SQL怎么合并...结构都不知道,怎么合并...
2、问题是count(clry)的值在表中没有字段与其对应
返回的是Object[]类型的东东,你自己根据你的HQL转换一下就可以,不需要与表对应
这个问题我以前也遇到过,比你的复杂些,用hql试了n种方法都行不通,后来用 sql搞定
Session session = this.getHibernateTemplate().getSessionFactory().openSession();
List list = session.createSQLQuery(sql).list();
${li[0]}${li[1]}
楼主试试吧