要查询表中的数据,怎么查找,HQL按条件查找?

解决方案 »

  1.   

    复合主键你会写吧?
    最好把复合主键封装成类,这样操作也方便;
    还有,hibernate要求复合主键的对应封装要实现Serializable接口,主要是重写equals()和hashCode()方法;
    然后对应其他类,可以使用两种标签(假如是学生对应老师)
    第一种:<many-to-one>
    <composite-id>
          ……………………
    </composite-id>
    <many-to-one name="teacher"
                 class="org.Teacher"
                 columu="teacherId"
                 insert="false"
                 update="false"  //最后这两个必须写
    />
    然后在Student.class中要加入 private Teacher teacher;Teacher.class中不用改;第二种;<key-many-to-one> 
    <composite-id>
          ……………………
          <key-many-to-one name="teacher"
                 class="org.Teacher"
                 columu="teacherId"
                 foreign-key="id"  表示外键引用teacher表
          />
    </composite-id>
    这种方法在Student.class中不用改动加入teacher;
    但是Student.class这时取不到teacher属性,因为现在已经由复合主键来调用了,只有先通过复合主键间接的取到teacher属性了。