hibernate 多对多
Hibernate
Hibernate多对多关联映射通常别拆分成两个多对一关联映射
1、 下面的HostBean、UserBean、UserHostBean,UserHostBean是两个表之间的关联表,分别跟HostBean和UserBean都是多对一的关联关系,可以发现中间表始终是多的一端。
2、因此配置文件中是这样的,在中间表UserHostBean中
<many-to-one name="user" class="UserBean" not-null="true" lazy="false">
<column name="user_id" />
</many-to-one>
<many-to-one name="host" class="HostBean" not-null="true" lazy="false">
<column name="host_id" />
</many-to-one>
分别设置中间表的两个关联字段;在另外本身是多对多关联的两个表中
<set name = "users" lazy="false" cascade="save-update" inverse="true">
<key column="user_id"></key>
<one-to-many class="UserHostBean"/>
</set>
<set name="hosts" lazy="false" cascade="save-update" inverse="true">
<key column="host_id"></key>
<one-to-many class="UserHostBean"/>
</set>
这个column:user_id是由一指向多的那端的一个维护关系字段,因此跟many-to-one中的关联字段名称要一致
3、 关联的CRUD操作:
Create:原则还是跟多对一样,先保存多的一端然后再保存一端,分别setHost和setUser,从而在这两者间建立关联
Example:
HostBean:
<hibernate-mapping>
<class name="HostBean" table="t_host">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<set name = "users" lazy="false" cascade="save-update" inverse="true">
<key column="user_id"></key>
<one-to-many class="UserHostBean"/>
</set>
</class>
</hibernate-mapping>
UserBean
<hibernate-mapping>
<class name="UserBean" table="users">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<set name="hosts" lazy="false" cascade="save-update" inverse="true">
<key column="host_id"></key>
<one-to-many class="UserHostBean"/>
</set>
</class>
</hibernate-mapping>
UserHostBean
<hibernate-mapping>
<class name="UserHostBean" table="t_user_host">
<id name="id" column="id" type="integer">
<generator class="increment"></generator>
</id>
<property name="lastVisitDate" column="last_visit_date" type="string"/>
<many-to-one name="user" class="UserBean" not-null="true" lazy="false">
<column name="user_id" />
</many-to-one>
<many-to-one name="host" class="HostBean" not-null="true" lazy="false">
<column name="host_id" />
</many-to-one>
</class>
</hibernate-mapping>
hibernate 多对多的更多相关文章
- hibernate多对多关联映射
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- hibernate多对一双向关联
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- hibernate多对一单向关联
关联是类(类的实例)之间的关系,表示有意义和值得关注的连接. 本系列将介绍Hibernate中主要的几种关联映射 Hibernate一对一主键单向关联Hibernate一对一主键双向关联Hiberna ...
- Hibernate多对多关系映射(建表)
下边讲述Hibernate多对多关系映射. 多对多关系的表的结构为: 两个实体表,还包含一个关系表,关系表为复合主键,如果要使用Hibernate多对多关系映射,则关系表必须只包含两个字段,如果生成了 ...
- atitit.atitit.hb many2one relate hibernate 多对一关联配置..
atitit.atitit.hb many2one relate hibernate 多对一关联配置.. 1. 多对一单向 @ManyToOne 1 1. 其中@JoinColumn 注解 2 2. ...
- hibernate多对一单向外键
hibernate多对一单向外键: 描述:
- Hibernate多对一ManytoOne
------------------------Hibernate多对一ManytoOne 要点: ManytoOne配置在多端 可以配置级联操作 @ManyToOne(cascade=Cascade ...
- hibernate 多对多一个对象出现多条记录问题
hibernate 多对多时,当须要依据它关联的对象查找的时候,会出现一个对象有多条记录的问题 用 left join fetch 抓取查询的时候还是会出现这问题,是由于主表在关联表中有多条记录 用 ...
- Hibernate多对多操作
---------------------siwuxie095 Hibernate 多对多操作 以用户和角色为例 (一)多对多映射配置 第一步:创建两个实体类,用户和角色 第二步:让两个实体类之间互相 ...
随机推荐
- springside出现Description Resource Path Location Type
<?xml version="1.0" encoding="utf-8" ?><beans xmlns="http://www.sp ...
- 8款超绚丽的jQuery焦点图动画
随着前端技术和浏览器技术的不断发展,人们开始对网页视觉效果的要求越来越高.我们经常会在页面中看到很多炫酷的图片焦点图播放控件,有些甚至是大屏的焦点图占用大片的页面空间,从而吸引用户的眼球.本文要分享的 ...
- 《HTML5与CSS3基础教程》学习笔记 ——Two Day
第七章 1. 样式表:选择器和生命块 2. !important: 某条声明的重要程度比其他高,在末尾添加 3. 属性值:inherit; 是强制继承 4. 1em=16px; 5. 可以 ...
- Excel 窗体控件属性
常规 AutoLoad (Excel) 打开工作簿时是否加载控件.(如果是 ActiveX 控件,则忽略.) Enabled(表单) 控件是否可以接收焦点并响应用户生成的事件. Locked( ...
- 【风马一族_Android】强制activity的横屏与纵屏
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="ht ...
- html关于强制显示 隐藏浏览器的滚动条
浏览器的滚动条在一些特殊的展示中,是不需要的,所以必须把它隐藏掉,文章主要介绍一些隐藏或者显示IE的水平或者垂直滚动条的实现代码,需要了解的朋友可以参考下: 相关css代码如下: //强制显示滚动条: ...
- JQuery插件开发 - 模板
(function($) { $.fn.PluginName = function(options) { // 创建一个默认设置对象 var defaults = { key : "Defa ...
- C#简单的加密类
1.加密 public class EncryptHepler { // 验值 static string saltValue = "XXXX"; // 密码值 static st ...
- windows下apache配置https
1.下载带有openSSL的apache安装包,我下载的为apache_2.2.11-win32-x86-openssl-0.9.8i.msi,安装后确认一下bin路径下的openssl.exe,ss ...
- [转]AIX下调整分区大小
AIX下调整文件系统大小 - [work] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://wangsuiri.blogbus.com/logs/35448074.htm ...