select count(*) from(select new PersonInfo(v.id,v.name,count(v.id)) from Person v  group by v.id,v.name) temp子查询是正确的,就是外面套了个 select count(*)就报错了,大家帮忙看下

解决方案 »

  1.   

    啥错误发一下,你赋值给谁了?.iterator().next()
      

  2.   


    子查询
    select new PersonInfo(v.id,v.name,count(v.id)) from Person v group by v.id,v.name
    查出来一个temp,temp是什么呢,temp是一个具有(v.id,v.name,count(v.id)) 属性的对象,但他不是Person v ,换一句话说这个temp在Hibernate中没有bean-mapping定义,没有定义的东西,Hibernate也不知道怎么办了
      

  3.   

    select count(*) from(
           select new PersonInfo(v.id,v.name,count(v.id)) from Person v group by v.id,v.name
          --这里分装在对象里面了啊,是一个java的对象啊
    ) temp
    --外面from 这个对象、、、、、
      

  4.   

    hql和sql搞的太混乱了、、、、、
      

  5.   

    hql语句的from不支持子查询,where则支持!
    例如:
    select a from A a,(select b from B b,C c where b.id=c.id) d  where a.id=d.id;
    改为
    select a from A a where a.id in (select b.id from B b,C c where b.id=c.id); 
      

  6.   

    老师说用HQL的时候心中要默念 查的是对象 是对象 对象所以没有count(*)你的语句可以写成:hql :  select new PersonInfo(v.id,v.name) from Person v 
    Query query = session.createQuery(hql);
    int size = query.list().size();//条数
    PS:
    PersonInfo 必须有一个 带两个参数的构造器:
    PersonInfo(String id,String name){