• Many to Many 映射关系(没尝试映射hibernate支持的java类型)

    • 双向多对多外键关联(XML/Annotation) (xml和annotation都实现了)
    • 单向多对多外键关联(XML/Annotation) (xml和annotation都实现了)
      注: Project中使用XML/Annotation时应统一

一、双向多对多外键关联(XML/Annotation)
  例子:多个人共同拥有多本书,多本书被多个人拥有,可相互查找修改信息
类属性变化:Book类需要添加泛型为User类的set,User类需要添加泛型为Book类的set,并提供get和set方法

  • XML

User类

<hibernate-mapping><class name="test.User" table="hbn_user" ><set name="books" table="hbn_users_books" ><key column="uid"/><many-to-many class="test.Book" column="bid" />        </set>    </class>
</hibernate-mapping>
<!-- set中的name:该类属性名;
table:连接表表名;key中的column:本类在连接表的名字,连接User表的主键key;
many-to-many中的column:column是连接表中多对多列的列名,class寻找Book类的主键
-->

Book类

<hibernate-mapping><class name="test.Book" table="hbn_book" ><set name="users" table="hbn_users_books" ><key column="bid"/><many-to-many class="test.User" column="uid" /></set>    </class>
</hibernate-mapping>
  • Annotation:

User类

@ManyToMany()
@JoinTable(name="hbn_user_book",    joinColumns= {@JoinColumn(name="user_id")},    //命名关联本表id的字段inverseJoinColumns= {@JoinColumn(name="book_id")})
private Set<Book> books = new HashSet<Book>();

Book类

@ManyToMany()
@JoinTable(name="hbn_user_book",joinColumns= {@JoinColumn(name="book_id")},inverseJoinColumns= {@JoinColumn(name="user_id")})
private Set<User> users = new HashSet<User>();

二、单向多对多外键关联(XML/Annotation)
  通过省略一方的映射完成

参阅资料:
映射关系1
映射关系2

Hibernate(五)多对多映射关系相关推荐

  1. hibernate之多对多映射操作中间表

    1.需求 1.1 在一个网上商城里有订单表,商品表,那么一个订单内可以有多个商品,一个商品可以被多个订单拥有.订单与商品就形成了多对多的关系,那么我们如何将这个关系通过hibernate映射到数据库呢 ...

  2. Mybatis使用Association解决多对一映射关系

    association :处理多对一的映射关系 property:需要处理的映射关系的属性名 javatype:该属性的类名 <resultMap id="empAndDeptResu ...

  3. hibernate多对多映射关系实现

    Course.hbm.xml: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC         ...

  4. java中的多对多关系解析_Java中多对多映射关系(转)

    多对对的映射,可以用学生和课程进行演示.一个学生可以选择多个课程,一个课程又对应了多个学生 定义学生类 class Stu{ private String name; private String n ...

  5. java中的多对多关系解析_Java中多对多映射关系

    多对对的映射,可以用学生和课程进行演示.一个学生可以选择多个课程,一个课程又对应了多个学生 定义学生类 class Stu{ private String name; private String n ...

  6. SpringJpa多对多映射关系

    1.菜单表 @Entity @Table(name="t_menus") public class Menus { @Id     @GeneratedValue(strategy ...

  7. hibernate注解方式来处理映射关系

    在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...

  8. hibernate annotation注解方式来处理映射关系

    2019独角兽企业重金招聘Python工程师标准>>> 在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟 ...

  9. hibernate 映射表_Hibernate多对多映射-连接表

    hibernate 映射表 Today we will look into Hibernate Many to Many Mapping using XML and annotation config ...

最新文章

  1. CentOS7 service network start命令启动时报错解决方法
  2. vue组件的基本使用,以及组件之间的基本传值方式
  3. 机器学习:KNN算法(MATLAB实现)
  4. SGI STL 学习笔记二 vector
  5. Java并发编程笔记之FutureTask源码分析
  6. 让maven项目使用nexus作为远程仓库
  7. iPhone开发知识和项目
  8. TensorFlow 中 tf.app.flags.FLAGS 的用法介绍
  9. 第十七周项目4 - 日期结构体(是当年的第几天)
  10. linux内核分析及应用 -- 输入输出(下)
  11. 回来bool的函数无return时返回true还是false
  12. python贪吃蛇_python实现贪吃蛇
  13. 简析HTML七种网页加密解密方法
  14. latex 中对同一脚注进行引用
  15. iOS游戏开发之Game Center研究
  16. c/c++实现简单的贪吃蛇可视化游戏
  17. 信息安全保障人员(CISAW)工控网络安全方向认证介绍
  18. 小米路由pro php,家庭实测 | 荣耀路由Pro2 可以吊打小米路由器吗?
  19. ios You app information could not be saved. Try again. If the problem persists, contact us
  20. 成品APP直播源码HLS直播(M3U8)回看和下载功能的实现

热门文章

  1. 《扬帆优配》北向资金新动向!增持硅片龙头,减仓“保险茅”
  2. 用项目管理的方法管理考研
  3. 麒麟810处理器_荣耀Play4T Pro评测:麒麟810处理器,堪称“真香”千元手机
  4. python解析照片拍摄时间和地点信息
  5. 关于波兰式、逆波兰式
  6. java clover_clover记录数据库的生成方法
  7. fcpx怎么合成延时摄影_利用FCPX制作延时视频
  8. 鸡蛋重量实验及蛋白质性价比分析 2020-12-10
  9. 边缘计算 KubeEdge+EdgeMash
  10. 关于响度、响度级、声强、声强级、声压、声压级、分贝、方、电平、增益、音高、音分