数据模型

teacher表

student表

t_tea_stu表

实体对象模型

Teacher private int tid;private String tname;private Set<Student> students;

 Student private int sid;private String sname;private Set<Teacher> teachers;

xml配置信息:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.skyedu.bean"><class name="Teacher" table="teacher"><id name="tid" column="tid" ><generator class="native"></generator></id><property name="tname" column="tname" length="30"></property><set name="students" table="t_tea_stu" cascade="save-update"><key column="tid"></key><many-to-many class="Student" column="sid" ></many-to-many></set></class>
</hibernate-mapping> 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC"-//Hibernate/Hibernate Mapping DTD 3.0//EN""http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.skyedu.bean"><class name="Student" table="student"><id name="sid" column="sid" ><generator class="native"></generator></id><property name="sname" column="sname" length="32" ></property><set name="teachers" table="t_tea_stu" cascade="save-update"><key column="sid"></key><many-to-many class="Teacher" column="tid" ></many-to-many></set></class>
</hibernate-mapping>

测试代码:

        Session session = HibernateUtil.getSession();Transaction transaction = session.beginTransaction();try{Student student1 = new Student();student1.setSname("张三1");Student student2 = new Student();student2.setSname("张三2");Student student3 = new Student();student3.setSname("张三3");Student student4 = new Student();student4.setSname("张三4");Student student5 = new Student();student5.setSname("张三5");Teacher teacher1 = new Teacher();teacher1.setTname("王五1");Set<Student> students1 = new HashSet<Student>();students1.add(student1);students1.add(student2);students1.add(student3);teacher1.setStudents(students1);Teacher teacher2 = new Teacher();teacher2.setTname("王五2");Set<Student> students2 = new HashSet<Student>();students2.add(student1);students2.add(student4);students2.add(student5);teacher2.setStudents(students2);session.save(teacher1);session.save(teacher2);transaction.commit();}catch(Exception e){transaction.rollback();}finally{HibernateUtil.closeSession(session);}

转载于:https://www.cnblogs.com/weidan/archive/2013/02/04/2892146.html

hibernate映射之多对多双向相关推荐

  1. hibernate 映射四多对一双向映射

    学生和班级的例子来说,多个学生可以对应一个班级. 1.站在学生角度来说,学生就是多端.那么我们可以通过多对一来维护2者的关系. 2.站在班级的角度来说,班级就是一端.那么我们可以通过一对多啦维护2者的 ...

  2. [置顶] Hibernate从入门到精通(十一)多对多双向关联映射

    上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一 ...

  3. Hibernate映射详解(二)--多对一,一对多单向,一对多双向关联映射

    在我们以前的数据库设计中,设计表就不是一件轻松的事情.多种事物之间往往都是有这样那样的关系的.那怎样设计表格,才能既将事情描述明白,又能使数据库设计的比较合理呢?那里我们提供了好多规范,好多约束来满足 ...

  4. Hibernate,关系映射的多对一单向关联、多对一双向关联、一对一主键关联、一对一外键关联、多对多关系关联...

    2018-11-10  22:27:02开始写 下图内容ORM.Hibernate介绍.hibername.cfg.xml结构: 下图内容hibernate映射文件结构介绍 下图内容hibernate ...

  5. 【Hibernate步步为营】--多对多映射详解

    上篇文章详细讨论了一对多映射,在一对多映射中单向的关联映射会有很多问题,所以不建议使用如果非要采用一对多的映射的话可以考虑使用双向关联来优化之间的关系,一对多的映射其实质上是在一的一端使用<ma ...

  6. hibernate映射一对多双向关联关系实例

    在电子商务应用中,经常会有这样的需求:根据给定的客户,得到该客户的所有订单:根据给定的订单,得到该订单的所属客户.对于这种双向关联的情况,在Hibernate应用中,也有人叫多对一双向关联,只是叫法不 ...

  7. 【Hibernate框架】关联映射(多对多关联映射)

    按着我们的总结行进计划,接下来,就是有关于多对多映射的总结了. 我们来举个例子啊,很长时间以来,房价暴涨不落,但是还有很多人拥有很多套房产,假如说,一个富豪拥有九套房产,家里人么准去住哪一套,我们就以 ...

  8. Hibernate 关联映射 之 多对多 关联(二) 之拆分

    1.由问题引出一个多对多拆分成两个多对一 问题:Hibernate 关联映射 之 多对多 关联(一)中中间表只是一个存放用户和角色的表,并无其他作用,如果客户有其他的需求,该表就无法扩展. 2.问题解 ...

  9. 【Hibernate步步为营】--关联映射之多对一

    上篇文章讨论了Hibernate的基本映射,一个实体类对应着一张表,在相应的Hibernate Mapping文件中使用<class>标签映射.并且实体类中的普通属性对应着表字段,使用&l ...

最新文章

  1. R使用深度学习LSTM构建时间序列预测模型
  2. 分布式系统的面试题14
  3. ASP.NET前台代码绑定后台变量方法总结
  4. axis2 jar包冲突_一个jar包冲突引起的StackOverflowError
  5. SVN 版本服务器搭配全过程详解(服务端、客户端)[转]
  6. CodeForces - 1293D Aroma's Search(暴力)
  7. 查询范围_企二哥:查询企业经营范围的三种方法
  8. awk之printf及相关参数详解
  9. 谈谈对三大框架的理解
  10. 程序员自学编程的6种方法,高效学习
  11. python信息技术答案_高中信息技术《Python语言》模块试卷习题.doc
  12. deepin驱动精灵_Deepin 15.4.1 X64官方正式版(64位)
  13. 安工大matlab实验报告王朋飞,计算机仿真实验
  14. 深度神经网络算法有哪些,深度神经网络算法原理
  15. 为什么手机有卡却突然显示无服务器,手机突然显示“无服务”,原因是什么?...
  16. 电脑该如何选择(小仙女篇)
  17. 安全狗2周年“全民大抽奖”活动
  18. 一筐鸡蛋编程解题Java_一筐鸡蛋总共369个标准答案怎么算的?求法解答公式解题步骤...
  19. Leetcode典型题解答和分析、归纳和汇总——T101(对称二叉树)
  20. 安装VS2008 SP1出现错误,文件正在使用 Microsoft Program Database

热门文章

  1. 关于测试行业的零星思考
  2. ORACLE TO_CHAR的一个问题
  3. use resources at the campus if possible
  4. 善于使用这个filter来减少mac系统找未读邮件的烦恼
  5. 计算机系学生的简单立体宿舍装潢大赏
  6. centos7安装face_recognition踩各种坑
  7. X.509 数字证书结构和实例
  8. 系统快捷键被谁占用? 查看工具
  9. Isilon三款新品构建数据湖2.0策略
  10. mediawiki常用设置