讲得好我加分!!!!!!!!!!!!!!!1--------------------------------------
package com.bjsxt.hibernate;public class Student {

private int id;

private String name;

private Classes classes; public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Classes getClasses() {
return classes;
} public void setClasses(Classes classes) {
this.classes = classes;
}
}
关联的hbm。xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Student" table="t_student">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<many-to-one name="classes" column="classesid"/>">//这里的属性都是什么意思?为什么用<many-to-one>????????????
</class>
</hibernate-mapping>
2------------------------------------
public class Classes {

private int id;

private String name;

private Set students; 

public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public Set getStudents() {
return students;
} public void setStudents(Set students) {
this.students = students;
}

}
关联的hbm。xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.bjsxt.hibernate">
<class name="Classes" table="t_classes">
<id name="id">
<generator class="native"/>
</id>
<property name="name"/>
<set name="students" inverse="true" cascade="all">//这里的属性都是什么意思?为什么用Set,如果private List students,那用<list>吗???????????
<key column="classesid"/>
<one-to-many class="Student"/>
</set>
</class>
</hibernate-mapping>

解决方案 »

  1.   

    第一个问题参见你的hibernate问题2
    第二个问题,hibernate中做一对多的映射时,最常用的是Set,主要是因为Set是无序的,因为大多数时候,我们只要保证这种关联关系就可以了,不太注意多端的顺序关系。当然,如果需要保持按加入顺序进行排列的话,也可以使用List,此时需要指定一个index列,同时在配置文件中进行映射。
      

  2.   

    你不是直接从研究代码开始的吧
    可以看看Hibernate的书籍,书上都有讲
      

  3.   

    <many-to-one name="classes" column="classesid"/>">//这里的属性都是什么意思?为什么用 <many-to-one>???????????? 
    这个是配置 多对一的关系  比如  班级  和  学生  这两个模型  一个班级 有 多个学生  扎个 就是 一对多大关系 
      一个学生 只属于一个 班级    就是 多对一的关系配置 name就是 类的属性 classid是 指明的 外键  通过把 学生类的classid 拿去和class的id比较 如果相等 就说明是 属于某个班级的 
      

  4.   

    3楼说的比较容易理解。
    假设数据库中有两个表:班级表
    -----------------
    班级编号|班级名称  
    023    |高二(3)班
    -----------------学生表
    --------------------
    学生编号| 姓名|班级编号
    1       |小李 |023
    2      |小王 |023
    ……
    有很多个学生对应着编号为023的班级,所以是<many-to-one>啊。