1.创建实体
//学生类
public class Student { private Integer sid; private String sname; // 学生选择多门课程. private Set<Course> courses = new HashSet<Course>();}
//课程类
public class Course { private Integer cid; private String cname; // 课程可以被多个学生选择: private Set<Student> students = new HashSet<Student>();注意:学生和课程是多对多的(事实上在数据库会产生三个表:1.学生表2.课程表3.学生课程关系表)xml配置:<!-- ORM元数据 表对象关系映射文件 package : 配置该配置文件中类所在的包. --> <hibernate-mapping package="com.ssml.dentity" > <class name="Course" table="t_course" > <id name="cid" column="id" > <generator class="native"></generator> </id> <property name="cname" column="name" ></property> <set name="students" table="t_student_course" inverse="true" > <key column="cid" ></key> <many-to-many class="Student" column="sid" ></many-to-many> </set> </class> </hibernate-mapping><hibernate-mapping package="com.ssml.dentity" > <class name="Student" table="t_student" > <id name="sid" column="id" > <generator class="native"></generator> </id> <property name="sname" column="name" ></property> <!-- 多对多关系 --> <!-- set 表达集合 name: 集合的属性名 table:多对多中间表的表名 key 表达外键 column:引用我的外键名 many-to-many 表达多对多 class : 集合引用方的类型 column:对方在中间表的外键名 --> <set name="courses" table="t_student_course" inverse="false" cascade="save-update" > <key column="sid" ></key> <many-to-many class="Course" column="cid" ></many-to-many> </set> </class> </hibernate-mapping>运行结果: