这样就要用面向对象的思想。
只需要查找 classID 所对应的记录就可以了,这样就得到一个 Classes 类型的对象,再用其 getStudents() 方法即可。

解决方案 »

  1.   

    由于classID这一列在Student实体类中不是列名,而是Classes的一个对象
    这是Hibernate的映射机制,由于你Student表中classID是外键,Hibernate是超面向对象的,所以在你的Student类里面,数据库表中classID对应的就是一个Classes类的对象了.
    由于你的Classes和Student是一对多的关系,在你的Classes里面肯定有个Set<Student>的集合.
    我的实现步骤:
    譬如你的类里面有个可以的到学生对象的方法叫做getStudentById(),这样得到一个对象之后,根据你类里面的属性调用getClasses()得到一个Classes对象,有了这个对象,你又可以根据属性getStudents()返回一个Set<Student>的集合.
    主要实现代码:public List<Student> getStudents(){
         /.........
         Student stu = HibernateSessionFactory.get(id);
         /.........
         /.........
         /.........
         Classes classes = stu.getClasses();
         List<Student> lstStu = classes.getStudents();
         return lstStu;
    }不需要HQL语句就可以实现.
      

  2.   

    十分感谢各位,不过我采用以下方法把问题解决了,(*^__^*) 嘻嘻……public List findByClassID(Integer classID) {
    try {
    Classes cl=(Classes)super.getSession().load(Classes.class, classID);
    String queryString = "from Student as model where model.classes"
    +  "= ?";
    Query query=super.getSession().createQuery(queryString);
    query.setParameter(0, cl);
    return query.list();
    } catch (RuntimeException re) {
    throw re;
    }
    }