`
jsczxy2
  • 浏览: 1275647 次
  • 性别: Icon_minigender_1
  • 来自: 常州
文章分类
社区版块
存档分类
最新评论

hibernate缓存与数据库不一致问题综述与处理

阅读更多

全当备忘:

经过研究发现hibernate分布式二级缓存存在没有更新的情况,而一级缓存和数据库确实更新了,暂时现阶段处理方案如下:

1.事务中对象update后手动清除相关对象的二级缓存(现阶段修改,正常情况下update后hibernate会自动更新相关对象的二级缓存,目前并不确定是不是update后二级缓存没有更新,因此这里手动清除二级缓存以便和数据库同步)

2.后台增加清除指定表、行和集合对象的二级缓存的功能(减少直接使用sql语句更新导致数据库和缓存不同步的状况)

3.如果1和2处理后还出现问题,则进一步修改1,把1中对象update后手动清除二级缓存移到事务后执行,方法可使用threadlocal存储当前线程中有更新过的对象,并在action中处理这些对象进行二级缓存清除,从而保证二级缓存和数据库一直保持同步状态。

4.由于问题比较复杂,仅有非常低概率出现此问题,因此最终还是需要针对缓存的日志分析进而获得缓存变化来确认问题发生点。

5.如果业务复杂度以及分布式系统需求更新更加频繁,则需要考虑是否移除hibernate的二级缓存。替代方案可以控制自己业务层中做缓存,也可以使用数据库自带的缓存等等。

分享到:
评论

相关推荐

    hibernate学习总结文档

    通过 ORM,Hibernate 可以将 Java 类与数据库表之间的映射关系自动化,从而简化数据访问层的编程工作。 **安装与配置** 在开始使用 Hibernate 之前,你需要将其添加到项目的类路径中。这通常通过 Maven 或 Gradle ...

    hibernate中英文参考手册

    "hibernate中英文参考手册"全面覆盖了Hibernate的各个方面,包括基本概念、配置、实体映射、持久化操作、关联管理、事务处理、缓存优化以及事件监听等。无论是初学者还是有经验的开发者,都能从中获取所需的信息,...

    基于jsp+ssh在线博客网源码数据库论文.doc

    10. **性能优化**:可能涉及了系统性能优化策略,如缓存机制、数据库查询优化、并发处理等。 通过这篇论文,读者可以深入理解如何利用SSH框架构建一个功能完善的在线博客系统,同时也会学习到软件开发的全过程,...

    JAVA语言考试系统的设计与实现(论文+源代码+文献综述+外文翻译+开题报告).rar

    在考试系统中,Hibernate可以自动处理数据库的CRUD操作,减轻开发者的工作负担。 7. **安全性**:包括身份验证和授权,防止未授权访问试题和成绩。这可以通过Spring Security或其他安全框架实现,确保只有合法用户...

    基于Java的“博客”论坛系统的设计与实现文献综述.pdf

    6. **性能优化**:考虑缓存策略、负载均衡、数据库优化等,提高系统响应速度和并发处理能力。 7. **移动适配**:随着移动设备的普及,系统需要适应手机和平板等不同设备的访问,可能需要开发对应的移动端应用或优化...

    基于jsp+ssh在线博客网源码数据库.doc

    - 使用缓存技术减少对数据库的直接访问。 - 对频繁访问的数据进行索引优化。 - 对静态资源如图片、CSS文件等进行压缩处理。 ### 五、总结 本项目通过运用JSP+SSH框架技术,旨在开发一个功能齐全、安全可靠的在线...

    基于J2EE在分布式环境下的底层结构(外文翻译+文献综述).rar

    分布式缓存如Hibernate的二级缓存或者 EhCache,可以提高数据访问速度,降低数据库压力。 【描述】中提到的"asp毕业设计项目,asp毕业设计源码"可能是一个对比,展示了传统的ASP技术与J2EE在企业级开发中的差异。...

    基于J2EE在分布式环境下的底层结构(外文翻译+文献综述).zip

    3. **缓存技术**:例如使用EJB的Cache或引入第三方缓存如Hibernate的二级缓存,可以减少对数据库的访问,提高性能。 **七、持续集成与部署** 1. **EAR文件**:Enterprise Archive (EAR) 文件是J2EE应用的打包格式...

    基于J2EE的B2C电子商务系统开发(论文+系统+开题报告+文献综述+任务书+答辩PPT+中期报表+外文文献+说明书).zip

    6. 性能优化:探讨如何通过缓存、负载均衡、数据库优化等手段提升系统性能。 7. 安全性策略:介绍防止SQL注入、XSS攻击、CSRF(跨站请求伪造)等的安全措施。 系统实现部分则包含了源代码和运行环境,可能使用了...

    Grails综述.docx

    通过插件,开发者可以轻松地扩展框架功能,实现诸如数据库迁移、安全控制、缓存管理等各种任务。这些插件往往封装了复杂的实现细节,降低了开发难度,提高了开发效率。 Grails的技术堆栈集成了许多现有的优秀组件,...

    javaweb毕业设计文献.docx

    - 数据库是JavaWeb开发中不可或缺的一部分,本书介绍了数据库系统的理论知识。 - 关键知识点包括数据库设计、SQL语言、关系数据库理论等。 14. **《JavaWeb应用开发:J2EE和Tomcat》**(蔡剑,景楠) - 本书介绍...

    Java项目开发平台开发规范方案.doc

    - 字符转换:在处理多语言或多编码环境时,字符转换是必需的,如GBK与UTF-8之间的转换,以避免乱码问题。 总结,Java项目开发平台开发规范方案是指导开发者遵循一致的开发流程和技术栈的重要文档,确保项目在开发、...

    se Java 设计架构

    #### 摘要与文献综述 本文主要探讨了Java设计架构的相关理论和技术,包括面向对象编程(OOP)的基本原则和发展方向、J2EE系统的架构设计等内容。通过综合分析软件工程思想,讨论了多层J2EE架构,并介绍了几种常用的...

    java技术的web环境下的网络商店销售系统

    - **Hibernate**: ORM(对象关系映射)框架,方便数据库操作,减少SQL编写工作。 - **JavaScript / jQuery / AJAX**: 客户端脚本语言,提升用户体验,实现异步交互。 2. **系统架构** - **三层架构**:表现层...

    计算机毕业设计-商城VIP消费查询系统-论文-源码.rar

    3. **数据库操作**:ADO.NET、JDBC或ORM框架(如Hibernate、MyBatis)用于与数据库交互。 4. **API设计**:如果系统有移动端需求,可能会涉及RESTful API的设计,以便移动端调用。 四、安全性与性能 1. **数据安全*...

    java技术的关键技术

    Spring还提供了对数据库访问的支持,如JDBC抽象层和ORM(Object-Relational Mapping)集成,例如Hibernate和MyBatis。 Struts框架则是Java Web开发中的一个MVC(Model-View-Controller)架构,用于分离业务逻辑、...

Global site tag (gtag.js) - Google Analytics