`

Hibernate多对多级联删除

阅读更多
推荐:红番薯       给力吧!
         又一村       遗失的记忆

前阵子,使用Hibernate删除多对多删除的时候遇到了点问题,情况是这样的:
A表和B表存在多对多关系,设计表关联时,创建中间表C,定义两个外键字段A_ID和B_ID,分别关联A表主键和B表主键。

在A表对应的hbm文件中,<set name="Bs" table="C" cascade="delete">...</set>

上面的cascade设定了级联删,本意是想删除A记录时,顺便清除中间表的关联记录,然而并未如此,删除A记录时,不仅删了中间表的记录,连B表中关联的记录也一并被删除了,这样的操作有时是不允许的,如权限和角色,你删了权限,但不能也把角色一并删了吧!

试过N遍,实在没辙,就不设置cascade属性,而是在C表中对A_ID字段添加了级联删的约束,这样就可以实现在删除A表记录时,只删中间表相关的记录,但不会删B表记录。
0
0
分享到:
评论
1 楼 ljm1227134894 2012-07-06  
而是在C表中对A_ID字段添加了级联删的约束,  请问是如何约束的?

相关推荐

    hibernate多对多关联映射

    `org.hibernate.persister.collection.AbstractCollectionPersister`和`org.hibernate.action.internal.CollectionRemoveAction`等类是处理多对多关联删除的关键。通过阅读源码,我们可以了解到Hibernate如何处理...

    Hibernate 一对多、多对一、级联、加载、反转

    在Java持久化框架Hibernate中,一对多(One-to-Many)、多对一(Many-to-One)、级联(Cascading)、加载(Loading)和反转(Inversing)是关系映射的重要概念,它们对于理解如何在数据库和对象之间有效地管理关联至...

    hibernate 级联(cascade和inverse)一对多

    总结,Hibernate的级联和反转特性对于一对多关系的管理至关重要,它们可以简化开发过程,提高数据操作的效率。通过合理配置,可以确保对象关系的正确同步,并利用JUnit进行测试以确保功能的正确性。在实践中,应根据...

    Hibernate多对多实例+数据库代码

    通过查看代码和运行示例,开发者可以深入理解Hibernate是如何自动处理复杂的关联操作,比如通过中间表实现多对多的添加、删除和查找。 **总结** 这个"Hibernate多对多实例+数据库代码"涵盖了ORM的核心概念,特别是...

    hibernate一对多项目

    本项目“hibernate一对多项目”旨在演示如何在JavaWeb应用中使用Hibernate处理一对多的关系映射。这里我们将深入探讨 Hibernate 的一对多关系、配置以及在实际项目中的应用。 首先,一对多关系在数据库中很常见,...

    hibernate多表联合查询

    ### Hibernate多表联合查询详解 #### 一、引言 在实际项目开发中,我们经常需要处理复杂的数据库查询,特别是涉及到多个表之间的关联查询。...希望本文能对你理解Hibernate的多表联合查询有所帮助。

    Hibernate-基础联表模板

    "Hibernate-基础联表模板"是针对Hibernate中联表查询的一个实用工具,旨在帮助开发者快速地进行多表关联查询,而不必记住复杂的SQL语句。 1. **Hibernate简介** Hibernate是一种开源的ORM框架,它允许开发者将Java...

    Hibernate多对多关联添加及查询示例

    本示例主要关注的是Hibernate中的多对多关联映射及其添加与查询方法。 多对多关联是数据库设计中的一种常见关系类型,指的是两个实体之间可以存在多个对应关系。例如,在学生与课程的关系中,一个学生可以选修多门...

    hibernate(一对多,多对一映射)操作

    本文将深入探讨Hibernate中的一对多和多对一映射关系,并通过一个实际的demo演示它们在增删查改操作中的应用。 首先,我们要理解什么是数据库的关联关系。在数据库设计中,我们经常遇到一种情况,即一个实体可能与...

    hibernate 多对多映射实例,学生 选课

    在这个“hibernate 多对多映射实例,学生 选课”项目中,我们将探讨如何使用Hibernate处理多对多关系,以及如何构建一个学生选课的系统。 首先,我们要理解多对多关系。在现实生活中,学生和课程之间就是一个典型的...

    hibernate 一对多和多对一的理解

    hibernate 一对多和多对一的理解 自己的个人看法 大家也来看看

    struts+spring+hibernate实现图书修改和删除

    在这个项目中,Struts 2被用来处理用户对图书修改和删除的请求,通过Action类定义业务逻辑,并返回相应的视图结果。 **Spring** Spring是Java企业级应用的核心框架,提供依赖注入(DI)和面向切面编程(AOP)等功能...

    hibernate 映射关系学习入门 多对多实体映射

    在实际应用中,我们可以通过Hibernate提供的API来添加、删除和查找多对多关系。例如,向`Student`添加一门`Course`,可以使用`addCourse(Course course)`方法;删除则通过`removeCourse(Course course)`方法。 六、...

    hibernate 多对多全注解(单向关联、双向关联)

    hibernate关联映射注解多对多单向关联、

    hibernate3.5多对多自动建表

    用hibernate3.5 xml文件映射,junit实现多对多自动建表,下载后解压用myeclipse导入,这里要注意:需要junit的包。这个是学hibernate的关键,建议新手作为重点,大虾就请多多指教了

    hibernate批量删除

    为了解决这一问题,Hibernate提供了对JDBC的支持,使得开发者能够利用JDBC的批量处理能力来优化批量删除操作。 #### 实现方式一:使用Hibernate API 原始的实现方式是直接通过Hibernate API来执行批量删除操作,...

    struts2 hibernate spring 整合批量删除源码

    在批量删除场景下,Hibernate可以用于查询和删除数据库中的多条记录。开发者通常会定义一个DAO(Data Access Object)接口,该接口包含批量删除的方法,然后由Hibernate的Session实现这个接口,执行SQL删除语句。...

    JSF+hibernate实现批量删除

    本篇文章将详细探讨如何利用JSF与Hibernate相结合来实现批量删除功能,以及在CRUD(创建、读取、更新和删除)操作中的应用。 首先,我们需要理解JSF的工作原理。JSF是一个基于组件的MVC(Model-View-Controller)...

    Hibernate级联操作一对多demo

    在这个" Hibernate级联操作一对多demo "中,我们将探讨如何在一对多的关系中应用级联操作。 一对多关系是数据库中常见的关系类型,它表示一个实体(如部门)可以有多个相关实体(如员工)。在Hibernate中,这种关系...

    hibernate_联级操作

    hibernate联级操作

Global site tag (gtag.js) - Google Analytics