hibernate映射(四)——多对多
来源:互联网 发布:杭州淘宝摄影培训班 编辑:程序博客网 时间:2024/05/18 15:29
多对多和一对多的映射关系很像,原理上也是相通的。于是,学习这种映射时,还是应该再回忆一下一对多和多对一的映射。很简单,当出现多对多的映射时,很自然会用到第三张表来维护它们之间的关系。正如人员和职务之间的关系:
<hibernate-mapping> <class name="com.bjpowernode.hibernate.User" table="t_user"> <id name="id"> <generator class="native"/> </id> <property name="name"/> <set name="roles" table="t_user_role"> <key column="user_id"/> <many-to-many class="com.bjpowernode.hibernate.Role" column="role_id"/> </set> </class></hibernate-mapping>
多对多关系要生成一张第三方表来维护二者关系,所以这里table="t_user_role"表示生成的第三方表。关于这里的<key column="user_id"/><many-to-many class="com.bjpowernode.hibernate.Role" column="role_id"/>可以参照之前多对一的关系的理解。相当于两个many-to-one的关系。1、对于<many-to-one>(用户多对角色一)来说,是在多的一方添加外键。那么key就代表参照的外键,many代表one的类型。唯一不同的是many-to-many中将key放在了第三方表t_user_role中来维护。2、而另外一个<many-to-one>(角色多对用户一)来说,也是要生成用户的外键role_id来存入t_user_role来维护。在这里直接用column="role_id"来表示了。上面展示的是单向的多对多关系,双向的也是一样的。只是在角色方再添加一个对应的关系映射。表的生成并无变化!
0 0
- hibernate映射(四)——多对多
- Hibernate(四):Hibernate映射——多对一单向关联映射
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- 【SSH进阶之路】Hibernate映射——多对一单向关联映射(四)
- Hibernate映射——多对一单向关联映射(四)
- Hibernate映射——多对一单向关联映射(四)
- 千山万水之Hibernate(四)——关联映射(多对一)
- 一口一口吃掉Hibernate(四)——多对一单向关联映射
- Hibernate(四)——多对一单向关联映射
- hibernate 四 多对多的映射
- (经典)Hibernate多对一关系映射(四)
- (经典)Hibernate多对一关系映射(四)
- hibernate进阶之路之一对多映射(四)
- Python语言实践分析 -- 闭包
- android 自定义View ----- 类似黄油相机添加文字
- css实现图片垂直水平居中
- LeetCode 260 Single Number III(只出现一次的数字 III)(*)
- mark关于Java语言Static的生命周期
- hibernate映射(四)——多对多
- 创建手机页面弹出键盘的时候背景图片被挤上去的解决办法
- eclipse导入项目出错
- 2015最流行的Android组件、工具、框架大全
- Java IO:网络IO模型
- Cef应用程序结构
- SVN服务器地址更改后的,本地代码的更新方法
- Oracle堆表内部存储机制
- java switch 异常 case expressions must be constant expressions