hibernate之传播性持久化(把级联应用到关联)
来源:互联网 发布:java框架面试ssh ssm 编辑:程序博客网 时间:2024/04/27 15:05
hibernate之传播性持久化(把级联应用到关联)
hibernate允许你给每个关联映射指定一种级联样式,它为所有的状态转变提供了更多灵活和更细粒度的控制。hibernate读取被声明的样式,并自动把操作级联到被关联的对象。在xml映射元数据中,把cascade="..."属性放在<one-to-one>或者<many-to-one>映射元素中,来启用传播状态变化。所有的集合映射(<set>,<bag>,<list>,<map>)都支持cascade属性。然而,delete-orphan设置只适用于集合。很显然,你永远不必给引用值类型类的集合启用传播性持久化---这里被关联对象的生命周期是依赖和隐式的。依赖型生命周期的细粒度控制只与实体之间的关联相关。
XML属性 注解
------- --------
None (默认)Hibernate忽略关联
save-update org.hibernate.annotations.CascadeType.SAVE_UPDATE
当Session被清除,且对象被传递到save()或者update()时,Hibernate就导航关联,并保存刚刚被实例化的瞬时实例和把变化持久化到脱管状态的实例。
persist javax.persistence.CascadeType.PERSIST
当对象传递到persist()时,hibernate使任何被关联的瞬时实例都变成持久化。如果使用原生的Hibernate,级联则只在调用时发生。如果使用EntityManager模块,这项操作则在持久化上下文清除时被级联。
merge javax.persistence.CascadeType.MERGE
Hibernate导航关联,并在对象传递到merge()时,通过相当的持久化实例合并被关联的脱管实例。可到达的瞬时实例被变成持久化。
delete org.hibernate.annotations.CascadeType.DELETE
当对象被传递到delete()或者remove()时,Hibernate就导航关联,并删除被关联的持久化实例。
remove javax.persistence.CascadeType.REMOVE
当对象被传递到remove或者delete()时,这个选项就把级联删除启用到被关联的持久化实例。
lock org.hibernate.annotations.CascadeType.LOCK
这个选项把lock操作级联到被关联的实例,如果对象是脱管的,就把它们重附到持久化上下文。注意LockMode没有被级联:Hibernate假设你在被关联对象上不想要悲观锁---例如,因为根对象上的悲观锁已经足以避免并发修改。
replicate org.hibernate.annotations.CascadeType.REPLICATE
hibernate导航该关联,并把replicate()操作级联到被关联的对象
evict org.hibernate.annotations.CascadeType.EVICT
当对象被传递到hibernate Session中的evict()时,hibernate从持久化上下文清除被关联的对象
refresh javax.persistence.CascadeType.REFRESH
当对象被传递到refresh()时,hibernate从数据库中重新读取被关联对象的状态。
all javax.persistence.CascadeType.ALL
这项设置包括并启用前面列出的所有级联选项。
deleteorphan org.hibernate.annotations.CascadeType.DELETE_ORPHAN
当被关联的对象从关联(即集合中)被移除时,这项额外的特殊设置启用了它们的删除。如果你在一个实体集合中启用这项设置,就等于告诉hibernate:被关联的对象没有共享的引用,且当引用从集合中被移除时,它可以被安全地删除
----------
注意:几个级联可以以逗号分隔的列表应用到特定的关联。还要注意:delete-orphan没有包括在all中。
- hibernate之传播性持久化(把级联应用到关联)
- Hibernate传播性持久化
- Hibernate级联操作学习之持久化临时对象
- 4.3 在hibernate中使用传播性持久化
- Hibernate持久化对象的级联操作
- JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
- JAVAWEB开发之Hibernate详解(二)——Hibernate的持久化类状态与转换、以及一级缓存详解、关联关系的映射(一对多、多对多、级联)
- hibernate 十, 持久化对象间的级联操作
- 把图片通过Hibernate持久保存到数据库
- Hibernate级联加载到session持久层中与事务回滚
- Hibernate级联加载到session持久层中与事务回滚
- Hibernate之持久化状态
- Hibernate之持久化对象
- hibernate之模拟Hibernate持久化操作
- hibernate 之 级联操作
- Hibernate之级联
- hibernate 的级联保存和关联关系
- hibernate的关联和级联(转)
- 常用字符串类库
- google笔试题_2011
- I/O内存内存操作
- 一些操作和C++语言本身的特性可能成为应用程序的瓶颈
- 字数统计器
- hibernate之传播性持久化(把级联应用到关联)
- Ubuntu下安装ArcExplorer9.3
- Fiona 小样, 加油!!!!!!
- java读写xml文件的方法[转自JavaEye]
- Puppet: 网络数据中心自动化配置管理
- 算法:打印出所有不同的排列
- .net里匹配汉字的正则表达式
- WEB Development Road. 博客详细说明.
- 关于linux下的共享库(动态库)和静态库