Hibernate的关联关系映射:(多对多)

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>
运行结果:


 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值