String HQL="from Users where isaudit=1 and rownum<=20 order by rownum desc";
Query query = this.session.createQuery(HQL);
List  list=query.list();
List ll=session.createFilter(list, "select this.city count(this) group by this.city ").list();
代码如上。
执行时总是报org.hibernate.QueryException: The collection was unreferenced
这是怎么回事职。。到底createFilter的第一个参数写什么啊。。谁有这方面的例子啊。。发个过来啊

解决方案 »

  1.   

    Collection blackKittens = session.createFilter(
    pk.getKittens(),
    "where this.color = ?")
    .setParameter( Color.BLACK,
    Hibernate.custom(ColorUserType.class) )
    .list()
    );
    这个是Hibernate-references的示例,可以看出第一个参数应该传的是pk这个对象的kittens对象集合,然后后面的HQL是对这个
    的过滤,这样说你应该明白了,比如
    Query q = session.createFilter(team.getStudents,"where this.age>?").setParameter(1,new Integer(22)).list()
    这样执行的效果就是查询班级里面学生年龄大于22岁的学生
      

  2.   

    Query q = session.createFilter(team.getStudents(),"where this.age>?").setParameter(1,new Integer(22))
    上面的代码稍微有点问题,Sorry
      

  3.   

    Team和Student之间是一对多的双向关联关系,一个班级有好多学生,一个学生属于一个班级,双方都持有对方的引用