`

Hibernate一对多、多对多关系级联删除时,二级缓存该如何处理?

    博客分类:
  • Java
阅读更多
在我的应用中菜单(Menu)这个持久化对象是组织成树形结构的,Menu与另一对象Module有对应关系,Menu与Module是多对一的,一个Module对应于多个Menu,其对应关系由Module中的menuSet维护。
在删除某个Menu对象时,其子节点应该被级联删除,这样就引出了一个问题,我如何来维护Module中的那个menuSet(这个模块对应的菜单)?假设在删除前,所有对象都已经处于二级缓存中。
我现在知道的只有两种办法:
1、清空这两个对象的二级缓存
2、笨的办法,遍历所有要删除的Menu节点,将这些节点从对应的Module.menuSet集合中删除。
另外,这种维护二级缓存的代码有没有一个优雅一点的处理办法,我现在感觉是在头痛医头脚痛医脚,哪里有这个问题,就在哪里处理。很多地方都有重复的代码。
分享到:
评论
1 楼 Jamsa 2006-12-10  
自己顶一下

相关推荐

    hibernate:一对多,多对多,一对一,乐观锁,二级缓存

    多对多关系常见于两个实体之间没有固定一对一或一对多关系的情况,如学生和课程。使用`@ManyToMany`注解,需要创建一个中间表(通常是联合主键)来存储两个实体的关联。`@JoinTable`注解用来定义中间表的详细信息。...

    hibernate一对多项目

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

    hibernate一对多与多对一

    本篇文章将详细讲解"hibernate一对多与多对一"的关系映射概念,以及如何在实际开发中进行配置和使用。 首先,我们来看一下“一对多”关系。在现实世界中,这种关系可以对应到例如一个班级有多个学生,或者一个人...

    Hibernate4(关系映射-事务-原理-性能和二级缓存-最佳实践)

    Hibernate 4是该框架的一个版本,它涵盖了关系映射、事务处理、原理、性能优化以及二级缓存的使用与最佳实践。以下知识点详细解释了这些关键概念。 1. 关系映射:在Hibernate框架中,关系映射是指对象与数据库表...

    Hibernate(一对多表操作)

    在实际项目中,我们经常需要处理复杂的数据关系,其中一对一、一对多、多对一和多对多是最常见的关联关系。本篇主要讨论的是Hibernate中的一对多关系映射,以及如何在实际操作中进行配置和使用。 一对多关系指的是...

    hibernate 一对多 增删改差

    在Java的持久化框架Hibernate中,"一对多"(One-to-Many)关系是一种常见的实体关联类型,它代表了一个实体可以与多个其他实体相关联。本篇将详细讲解如何使用Hibernate处理这种关系,并涵盖增、删、改、查(CRUD)...

    hibernate基础 二 关联映射 级联操作

    在Hibernate中,可以通过不同的方式来表示一对多的关系,其中最常用的方式是在“多”的一方定义集合属性来关联“一”。 - **外键关联**:在“多”的一方的表中添加一个外键,指向“一”的一方的主键。 - **主键关联...

    Hibernate一对多教学

    在一对多关系中,我们经常需要处理级联操作,如级联保存、更新或删除。通过设置`cascade`属性,可以指定这些操作是否应该影响到关联的对象集合。同时,为了性能考虑,Hibernate提供了懒加载机制,默认情况下,`@...

    hibernate多对一关联关系

    在Java的持久化框架Hibernate中,"多对一"关联关系是一种常见的对象关系映射(ORM)设计,它表示一个实体(子项)可以与多个其他实体(父项)相关联,而每个父项可能被多个子项引用。在数据库层面,这通常对应于一个...

    Hibernate一对多(多对一)双向关联(annotation/xml)

    在Java的持久化框架Hibernate中,一对多(Many-to-One)和多对一(One-to-Many)的关系映射是数据库关系模型中的常见关联类型。本文将深入探讨这两种关联方式在使用Hibernate时的配置,包括基于注解(Annotation)和...

    Hibernate ORM - 一对多双向连接表关联关系

    8. **缓存策略**:Hibernate提供了缓存机制,如一级缓存(Session级别)和二级缓存(SessionFactory级别),可以优化一对多关联的性能。 9. **最佳实践**:在实际应用中,应考虑数据量、性能需求和业务逻辑来选择...

    hibernate常用一对一、一对多、多对一、多对多映射关系真实例子(华南银行项目)

    本篇将重点讲解Hibernate如何处理四种基本的关系映射:一对一、一对多、多对一以及多对多,并以华南银行项目的实际例子进行阐述。 首先,我们来理解一对一(One-to-One)映射。在数据库设计中,一对一关系通常出现...

    Hibernate多对多关联关系demo

    多对多关联的缓存策略也是需要注意的部分,包括一级缓存(Session)和二级缓存(SessionFactory)。合理设置缓存可以提高性能,但需要考虑并发和数据一致性问题。 7. **过滤条件**: 在`<many-to-many>`标签中的`...

    Hibernate单向一对多关联映射(XML版)

    7. **缓存机制**:Hibernate提供了二级缓存,可以缓存关联的对象,减少对数据库的访问,进一步提升性能。不过,需要注意缓存同步和并发控制问题。 通过以上步骤,我们就完成了Hibernate单向一对多关联映射的配置和...

    Hibernate ORM - 一对多双向组合关联关系

    9. **缓存机制**:理解Hibernate的第一级缓存(Session缓存)和第二级缓存(可选,如EHCache),它们如何影响一对多关联的读写操作。 10. **性能考虑**:在设计一对多双向组合关联时,要考虑到查询效率、内存消耗等...

    hibernate多对多关系

    7. **缓存机制**:Hibernate提供了第一级缓存(Session级别的)和第二级缓存(SessionFactory级别的)。对于多对多关联,合理利用缓存可以提高性能,但需注意并发控制和数据一致性问题。 在提供的压缩包文件`many2...

    Hibernate4(事务,原理,性能和二级缓存,最佳实践).pdf

    - **懒加载**:对于一对多或多对多关系,使用懒加载机制可以减少初始加载时的数据量。 **最佳实践**: - **事务管理**:确保在适当的层次进行事务管理,例如通过 Spring 的声明式事务支持。 - **ORM 设计**:合理...

    hibernate的_映射、三态、脏数据、Session缓存

    - **一对多(One-to-Many)映射**:一对多关系是实体间常见的一种关联关系。在上述示例中,一个班级可以有多个学生,因此班级类中使用`<set>`元素定义了一个`students`集合,表示一个班级拥有多个学生。 #### 二、...

    Hibernate映射关系一对多

    通过上述讲解,我们了解了如何在Hibernate中配置和使用一对多映射关系,包括XML映射、注解映射、懒加载、级联操作以及实际应用中的注意事项。希望这些知识能帮助你更好地理解和运用Hibernate进行数据持久化。

    Hibernate多对多关系

    - **缓存策略**:利用Hibernate的二级缓存可以提高查询效率,特别是对于经常访问的关联数据。 7. **注意问题**: - **关联表的主键**:在自动生成关联表时,需确保两个外键组合成的主键具有唯一性,避免数据冗余...

Global site tag (gtag.js) - Google Analytics