请问一下
hibernate 
session.createquery("from A where flag=false and a="+a1);
其中A是类名flag是A的一个属性,a1是一个实例了的A
这样的形式有错么?错在哪里面?
就是我知道一个一对多关系,如何知道一的一端,取得所有属于他的多的的一端的内容。 
就比方说类A
A{
   private Set<B> b;
}
B{
private A a;
private boolean flag;
}
请问如何在知道A的实例的情况下,取得所有它所包含的b并且b的flag=true

解决方案 »

  1.   

    ("from A where flag=false and a="+a1 这样写好像有问题//查询某个班级的学生
          public Classes checkStudentByCid(Integer cid){
    Session session = HibernateSessionFactory.getSession();
    Classes c = (Classes) session.get("com.wq.domain.Classes", cid);
    if(!Hibernate.isInitialized(c.getStudents())){
    Hibernate.initialize(c.getStudents());
    }
    HibernateSessionFactory.closeSession();
    return c;
    } Classes c = client.checkStudentByCid(new Integer(6));
    Set students = c.getStudents();
    Iterator its = students.iterator();
    while(its.hasNext()){

    Student s = (Student) its.next();
    System.out.println(s.getSid()+s.getSname());
    }
      

  2.   


    就是我知道一个一对多关系,如何知道一的一端,取得所有属于他的多的的一端的内容。 
    A{
      private Set <B> b;
      private boolean flag;
    }
    B{
       private A a;}      session.createQuery("from B where B.a.flag=true");
      

  3.   

    其实有一种更好的方式,hibernate可以面向对象进行查询,用
    createcr...方法。。这样会更简便,谢谢各位作答了,本人已经解决了。