Hibernate多表关联操作
来源:互联网 发布:洁面仪有用吗 知乎 编辑:程序博客网 时间:2024/05/16 17:58
一、多对一(many-to-one)
在映射文件中配置< many-to-one >标签,通过设置该标签的name属性与实体类中的对应属性连接(name属性值与实体属性名相同)。Hibernate利用反射技术根据对应的实体类中的属性的类型找到对应的表。
在employee映射中配置:
实体Department有映射
上面的过程创建外键(dept的主键)
二、一对多(many-to-one)
实体类(dept)中的对象集合属性。Set<Employee> empl
<set name=”empl”> //映射集合
<one-to-many class=”Employee”/> //描述泛型
</set>
Employee 映射中的配置
< many-to-one name=”dept” column=”depart_id”>
三、一对一(one-to-one)
是分主从对象的。
基于主键 通过主键确定一一对应
在从对象IdCard中
<id name=”id”>
</generator>
</id>
<one-to-one name=”person”>
<id name=”id”>
<generator class=”native”/>
</id>
<one-to-one name=”IdCard”>
基于外键 从对象通过外键,主对象通过从对象外键确定一一对应
在从对象中 id恢复
<many-to-one name=”person” column=”person_id” unique=”true” not-null”true”>
<one-to-one name=”idCard” property-ref=”person”>
四、多对多(many-to-many)
在学生实体映射中
<set name=”teacher” table=”teacher_student”>
<key column=”teacher_id”/>
在老师实体映射中
<set name=”student” table=”teacher_student”>
<key column=”student_id”/>
<many-to-many class=”Teacher” column=”teacher_id”/>
</set>
五、组件关联映射
就是复杂属性的映射,这个属性不值得使用上面的映射。
<component name=”name”>
<property name=”firstName” column=”first_name”/>
<property name=”laseName” column=”last_name”/>
</component>
六、级联和关系维护
谁维护关系谁就是持久状态的,联系在一起的实体发生的任何变化都会引发关系维护端的update。关系维护端是执行set的那端。
Cascade和inverse:Cascade用来说明当对主对象进行某种操作时是否对其关联的从对象也做类似操作,常用的cascade有:none,all,save-update,delete,lock,refresh,evict,replicate,persist,merge,delete-orphan.
一般对many-to-one,many-to-many不设置级联,在one-to-one,和one-to-many中设置级联
Inverse表示是否放弃维护关联关系,用在集合中,不能在有序的集合中使用。
在多对多关系中只能由一端维护关系,因为涉及到中间表。
- Hibernate多表关联操作
- hibernate表关联操作
- Hibernate一对多关联操作
- hibernate多表操作之一对多的双向关联
- hibernate多表关联
- hibernate多表关联
- Hibernate入门BLOG[十一、Hibernate表关联的级联操作]
- Hibernate对多表关联
- hibernate多表关联总结
- hibernate多表关联配置
- hibernate多表关联查询
- hibernate多表关联映射
- hibernate多表关联查询
- hibernate多表关联配置
- hibernate多表关联配置
- hibernate多表关联配置
- hibernate多表关联查询
- hibernate多表关联配置
- SELECT MIN(ID),MAX(ID) FROM TABLE 优化问题
- Struts2中使用标签<s:checkboxlist>的问题
- 5个海盗分100枚金币
- 支撑1000万pv的数据库缓存解决方案 .
- 融合基础架构之我见
- Hibernate多表关联操作
- 领域逻辑的三个主要模式 [转]
- Lnux环境下,用opencv加载纹理贴图
- 我想说的
- 数据库安装之SQL SERVER2008的安装
- 什么是ActiveRecord
- apple-touch-icon-precomposed使用方法
- 大型高并发高负载web应用系统架构-缓存架构策略 .
- 多用户、多会话 Server版操作系统下 程序唯一实例运行