Hibernate(五)多对多映射关系
- 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(五)多对多映射关系相关推荐
- hibernate之多对多映射操作中间表
1.需求 1.1 在一个网上商城里有订单表,商品表,那么一个订单内可以有多个商品,一个商品可以被多个订单拥有.订单与商品就形成了多对多的关系,那么我们如何将这个关系通过hibernate映射到数据库呢 ...
- Mybatis使用Association解决多对一映射关系
association :处理多对一的映射关系 property:需要处理的映射关系的属性名 javatype:该属性的类名 <resultMap id="empAndDeptResu ...
- hibernate多对多映射关系实现
Course.hbm.xml: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC ...
- java中的多对多关系解析_Java中多对多映射关系(转)
多对对的映射,可以用学生和课程进行演示.一个学生可以选择多个课程,一个课程又对应了多个学生 定义学生类 class Stu{ private String name; private String n ...
- java中的多对多关系解析_Java中多对多映射关系
多对对的映射,可以用学生和课程进行演示.一个学生可以选择多个课程,一个课程又对应了多个学生 定义学生类 class Stu{ private String name; private String n ...
- SpringJpa多对多映射关系
1.菜单表 @Entity @Table(name="t_menus") public class Menus { @Id @GeneratedValue(strategy ...
- hibernate注解方式来处理映射关系
在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟话说,萝卜青菜,可有所爱,每个人都有自己喜欢的配置方式,我在试了这两种方式 ...
- hibernate annotation注解方式来处理映射关系
2019独角兽企业重金招聘Python工程师标准>>> 在hibernate中,通常配置对象关系映射关系有两种,一种是基于xml的方式,另一种是基于annotation的注解方式,熟 ...
- hibernate 映射表_Hibernate多对多映射-连接表
hibernate 映射表 Today we will look into Hibernate Many to Many Mapping using XML and annotation config ...
最新文章
- CentOS7 service network start命令启动时报错解决方法
- vue组件的基本使用,以及组件之间的基本传值方式
- 机器学习:KNN算法(MATLAB实现)
- SGI STL 学习笔记二 vector
- Java并发编程笔记之FutureTask源码分析
- 让maven项目使用nexus作为远程仓库
- iPhone开发知识和项目
- TensorFlow 中 tf.app.flags.FLAGS 的用法介绍
- 第十七周项目4 - 日期结构体(是当年的第几天)
- linux内核分析及应用 -- 输入输出(下)
- 回来bool的函数无return时返回true还是false
- python贪吃蛇_python实现贪吃蛇
- 简析HTML七种网页加密解密方法
- latex 中对同一脚注进行引用
- iOS游戏开发之Game Center研究
- c/c++实现简单的贪吃蛇可视化游戏
- 信息安全保障人员(CISAW)工控网络安全方向认证介绍
- 小米路由pro php,家庭实测 | 荣耀路由Pro2 可以吊打小米路由器吗?
- ios You app information could not be saved. Try again. If the problem persists, contact us
- 成品APP直播源码HLS直播(M3U8)回看和下载功能的实现
热门文章
- 《扬帆优配》北向资金新动向!增持硅片龙头,减仓“保险茅”
- 用项目管理的方法管理考研
- 麒麟810处理器_荣耀Play4T Pro评测:麒麟810处理器,堪称“真香”千元手机
- python解析照片拍摄时间和地点信息
- 关于波兰式、逆波兰式
- java clover_clover记录数据库的生成方法
- fcpx怎么合成延时摄影_利用FCPX制作延时视频
- 鸡蛋重量实验及蛋白质性价比分析 2020-12-10
- 边缘计算 KubeEdge+EdgeMash
- 关于响度、响度级、声强、声强级、声压、声压级、分贝、方、电平、增益、音高、音分