Hibernate的多对多关系

Hibernate的多对多关系

 分别有三个表:课程表、学生表、分数表。课程和学生的关系是多对多的,因为一个学生对应多个课程,而一个课程被多个学生选修。如果用一对多、多对一的观点来看待课程和学生的关系显然是不对的,因为课程表和学生表中都没有外键。

因此,为了找到表之间多对多的关系,需要引入第三个表(分数表),分数表中含有课程表和学生表的主键,可以将两个本来没有关联的表通过第三个表连接起来。

2、实体关系表达:

Hibernate的多对多关系

 两个实体中,分别创建了两个set集合存储对方实体对象。

3、多对多的配置:

(1)student.hbm.xml:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <hibernate-mapping package="pers.zhb.domain"> <class table="student"> <id column="studentno" > <generator></generator> </id> <property column="birthday"></property> <property column="classno"></property> <property column="email"></property> <property column="phone"></property> <property column="sex"></property> <property column="sname"></property> <property column="point"></property> <set table="score" inverse="true"><!--一对多关系配置--> <key column="studentno"></key><!--指定了集合表的外键--> <many-to-many column="courseid"></many-to-many> </set> </class> </hibernate-mapping>

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzjxz.html