Hibernate的Cascade——级联操作

简介:
 

在Hibernate中,针对持久化实体的配置文件中有Cascade这样一个属性,顾名思义就是级联,也就是说在操作当

前实体时,针对当前实体的操作会影响到相应配置的关联实体。比如针对当前实体进行保存操作时,会同时保存

与其关联的实体,当然这种额外操作的产生取决于你是否在当前实体的配置文件中对关联实体的元素配置了

Cascade属性。

 

而需要进行级联的操作可能涉及到增加,修改,删除等相应的数据库操作,具体Cascade的取值则

分为多种,如all,表示针对所有操作都会进行级联,如save-update,表示针对插入和修改会进行级联操作。对

于Cascade的取值问题需要根本具体需求而定,这里没有一个统一的标准应该取怎样的值符合你的需要。从现实

需求分析来决定应该如何取值。

 

all ::                       所有情况下均进行关联操作。
none:                    所有情况下均不进行关联操作。这是默认值。
save-update:       在执行save/update/saveOrUpdate时进行关联操作。
delete:                  在执行delete时进行关联操作。


all的意思是save-update + delete


all-delete-orphan 的意思是当对象图中产生孤儿节点时,在数据库中删除该节点


举个例子说一下all-delete-orphan:
Category与Item是一对多的关系,也就是说Category类中有个Set类型的变量items. 举个例子,现items中存两个

Item, item1,item2,如果定义关系为all-delete-orphan当items中删除掉一个item(比如用remove()方法删除

item1),那么被删除的Item类实例将变成孤儿节点,当执行category.update(),或session.flush()时hibernate同

步缓存和数据库,会把数据库中item1对应的记录删掉。

 

参考博客:

http://dreamzhong.iteye.com/blog/1273157

http://apps.hi.baidu.com/share/detail/5946383

目录
相关文章
|
Serverless Go
手把手教你用Go语言画出正弦图像 模拟画图不再难!
手把手教你用Go语言画出正弦图像 模拟画图不再难!
344 0
|
机器学习/深度学习 Kubernetes 网络协议
K8s单机架构部署
这是我做了很多遍,参考很多文章得到的,为了便于大家参考和学习,我已经把每一步都整理出来了,步骤和提示都很清晰。 后续文档有什么问题那个地方写错了,大家都可以提出来。
1811 1
K8s单机架构部署
|
算法 数据可视化 调度
基于PSO粒子群优化的车间调度问题求解matlab仿真,输出甘特图
基于PSO粒子群优化的MATLAB仿真解决车间调度问题,输入机器与工作完成时间,输出甘特图与收敛图,实现多机器多任务最优并行调度。使用MATLAB 2022a版本运行,通过模拟鸟群觅食行为,不断更新粒子速度与位置寻找最优解,采用工序编码,总加工时间为适应度函数,实现快速收敛并可视化调度结果。
403 16
|
6月前
|
人工智能 运维 自然语言处理
通义灵码 AI实战《手把手教你用通义灵码写一个音乐电子小闹钟》
通义灵码DeepSeek版本相比qwen2.5,增强了深度思考和上下文理解能力,显著提升了开发效率,尤其适合代码能力较弱的运维人员,真正实现了“代码即服务”。
278 4
|
9月前
|
数据可视化 项目管理 调度
多任务处理方法:6大项目管理工具
项目管理中,合理选择工具至关重要。本文介绍了六种常用工具:SWOT分析、任务分解(WBS)、甘特图、二八原则、看板法和6W2H法,每种工具都有助于项目不同阶段的有效管理。
349 3
多任务处理方法:6大项目管理工具
|
Java Go 开发工具
如何排查Go 程序 CPU 占用过高问题
如何排查Go 程序 CPU 占用过高问题
1984 0
如何排查Go 程序 CPU 占用过高问题
|
机器学习/深度学习 监控 算法
目标检测算法的优缺点及适用场景
目标检测算法的优缺点及适用场景
749 0
ArcGIS快速将栅格的0值设置为NoData的方法
本文介绍在ArcMap软件中,将栅格图层中的0值或其他指定数值作为NoData值的方法~
1098 1
ArcGIS快速将栅格的0值设置为NoData的方法
|
Android开发
Android init.rc脚本详解
Android init.rc脚本详解
489 2