级联(cascade)在数据库的多表的操作中是一个比较重要的操作,级联是用来设计一对多关系的。对于一对多的表关系中,

一方表可以通过级联来操对多发表中跟自己相关联的表;比如更新,删除等等。

而在SSH框架集成的开发环境中,因为Hibernate的持久化操作,数据库的操作在开发环境中也显得很重要,而在这里主要是说

一下多表操作中的级联的一些问题:

在一对多关系中,一方表中删除一条数据的时候,多发表中的数据如果外键是和一方表这条数据的主键一致时,如果设置了级

联,则多方表的有关的数据全都会删除,但是往往在SSH中的级联操作都是在程序中进行的。所以如果要完成级联操作,需要配置一

下pojo 类的 hbm.xml配置文件:

配置文件:

<many-to-one name="fatherNewsColumn" column="pid"  cascade="save-update"></many-to-one><set name="set" inverse="true" cascade="all" lazy="extra"><key><column name="pid"></column></key><one-to-many class="NewsColumn"/></set>

以上是一个表中的操作,这个表示自相关联的,与一表对多表的性质是一样的。 在设置一对多的操作中 <set>中的cascade属性设置为all时,表示所有的更新,删除操作都会对相关联的字段造成影响,所以要设置级联删除时,这样设置即可,当然设置delete也是可以的。

另外,级联删除在删除字段时,我们是要通过程序中的方法去在操作,我们假设有个对象要完成删除操作,对象的属性:

public class NewsColumn {private Integer id;private String name;private String content;private NewsColumn fatherNewsColumn;private Set<NewsColumn> set;

因为存在Hibeinate映射,所有程序中要操作的是一个对象,

这里要注意,如果我们要删除一条数据,并且对它的所有关联的数据都要完成级联操作,那么这个对象的属性必须要全!至少它的set 属性要有。如果在删除操作中该属性不全,会报错,这里我们举反例:

public String delete() throws Exception{newsColumnService.deleteNews(newsColumn);return "success";}

这里的newsColum中的属性只有一个id是有值的,其他属性都是空的,当执行操作时,结果这条数据时可以删除的,但是它关联的其他数据却没删除,这里就会造成错误:

Struts Problem Report
Struts has detected an unhandled exception: Messages: No row with the given identifier exists: [com.bjpowernode.oa.pojo.NewsColumn#18]
Error reading 'name' on type com.bjpowernode.oa.pojo.NewsColumn_$$_jvstbd0_0
javax.el.ELException: Error reading 'name' on type com.bjpowernode.oa.pojo.NewsColumn_$$_jvstbd0_0 File: org/hibernate/internal/SessionFactoryImpl.java
Line number: 247

原因是这些数据的外键所对应的主键数据已经被删除。

所以在这里我们应该这样做:

public String delete() throws Exception{newsColumn=newsColumnService.getNewsColumn(newsColumn.getId());newsColumnService.deleteNews(newsColumn);return "success";}

先将要删除的对象的属性都获取到,然后在经行删除操作,这样级联操作便会执行了。一对多所关联的数据就会删除了!

SSH中关于级联删除不能实现的一些问题相关推荐

  1. 如何在SQL Server中使用级联删除?

    本文翻译自:How do I use cascade delete with SQL Server? I have 2 tables: T1 and T2, they are existing tab ...

  2. MySQL中的级联删除与更新策略on delete restrict on update restrict

    MySQL中的级联删除与更新策略on delete restrict on update restrict 在MySQL中,当我们执行级联删除与级联更新时,可能会执行On Delete Restric ...

  3. mysql中的级联删除的语句_级联删除sql语句-数据库级联删除语句-sql删除语句

    SQl语句的级联删除问题 删除应该有顺序 1,删除link表 delete from ref,link where ref.link_code=link.link_code and link_id=? ...

  4. java 级联删除_JavaEE中的级联删除讲解级源码

    我们在做项目开发的时候,一定会遇到多个表之间相关联的情况,在这种情况下,我们如果想要删除其中的某个表中的数据,就要连同其他表中与之对应的数据删除.例如:我们设计一个客户表,一个订单表,一个订单明细表. ...

  5. [JAVAWEB实战篇]---Hibernate实现级联删除

    Hibernate实现级联删除 版权所有,转载请注明出处zhyiwww@163.com 我的使用背景: v有新闻和新闻类型,一条新闻只能属于一个类型,一种新闻类型可以对应多条新闻. v在数据库中,新闻 ...

  6. EF里一对一、一对多、多对多关系的配置和级联删除

    EF里一对一.一对多.多对多关系的配置和级联删除 本章节开始了解EF的各种关系.如果你对EF里实体间的各种关系还不是很熟悉,可以看看我的思路,能帮你更快的理解. I.实体间一对一的关系 添加一个Per ...

  7. Oracle之外键(Foreign Key)使用方法具体解释(二)- 级联删除(DELETE CASCADE)

    Oracle外键(Foreign Key)之级联删除(DELETE CASCADE) 目标 演示样例解说怎样在Oracle外键中使用级联删除 什么是级联删除(DELETE CASCADE)? 级联删除 ...

  8. java 级联删除_Hibernate实现级联删除

    我的使用背景: v 有新闻和新闻类型,一条新闻只能属于一个类型,一种新闻类型可以对应多条新闻. v 在数据库中,新闻受新闻类型外键约束,并可以级联删除 v 在 Hibernate 中,实现级联删除 v ...

  9. ssh框架下的关联表删除(级联删除)

    为了完善一个删除功能,期间遇到一些麻烦,希望记录下来,日后回头看会有所帮助,记一次成长,也是第一次写博客. 首先,页面方面使用的是dwz,我是初次接触而且刚开始工作不久,了解不是很深,但是一些功能的搭 ...

最新文章

  1. 小马智行L4无人车今日量产下线,这比融资更具里程碑意义
  2. 全网最全 Python 操作 Excel 教程,建议收藏!
  3. java和node.js 2018_2018,Node.js社区最值得关注的三个话题
  4. Dubbo——增强SPI的实现
  5. 小米第一款智能手表来了 或支持安装手机App
  6. CSS去除按钮激活的高亮边框(Button的点击出现黑色外边框的取消)
  7. es 在数据量数亿级别提高查询效率?
  8. 贪吃蛇游戏设计预习01
  9. 计算机的ie丢失,告诉你win7内的IE给卸载了怎么找回
  10. 华为交换机access、trunk、hybrid接口区别理解
  11. 数据库中delete和drop的区别
  12. 眼保健操练习方法,眼保健操图解教程
  13. 如何把二维码引入固定资产管理?
  14. C# CultureInfo 和CultureUIInfo的区别.
  15. 2022-2028全球静电模拟器枪行业调研及趋势分析报告
  16. 洛谷P1075 质因数分解C语言
  17. 前端三剑客HTML学习笔记
  18. layui中的table使用心得,json格式处理,json转字符串,json转对象,json转对象数组,layui表格图片显示修改。
  19. 11月27日云栖精选夜读:阿里毕玄:智能时代,运维工程师在谈什么? 飞
  20. 注意力机制 - 多头注意力

热门文章

  1. 海外代购抗癌药渠道存疑:难断真实效果
  2. Java微服务_医疗管理项目_基于若依快速开发框架
  3. 47页PPT:如何利用Python进行自动化办公?
  4. knockoutJS学习笔记02:jsRender模板引擎
  5. SpringBoot 接口幂等性实现的4种方案!这个我真的服气了!
  6. 01 | 23届秋招嵌入式岗位薪资情况汇总
  7. 开发使用air还是pro_「APPSO」第四代 iPad Air 评测:性能向 Pro 看齐,续航比 Pro 更强,还有人说不够香?...
  8. Uni-app微信小程序开发
  9. 华为手机为什么深受上班族钟爱?这四点原因很真实,你觉得呢
  10. 2010年12月证券从业资格考试预测题(附答案)②