`

Hibernate session FlushMode详解

阅读更多
[size=medium]Hibernate session FlushMode有五种属性:
1、NEVEL:已经废弃了,被MANUAL取代了
2 MANUAL:www.2cto.com
如果FlushMode是MANUAL或NEVEL,在操作过程中hibernate会将事务设置为readonly,所以在增加、删除或修改操作过程中会出现如下错误
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition;
解决办法:配置事务,spring会读取事务中的各种配置来覆盖hibernate的session中的FlushMode;
3 AUTO
设置成auto之后,当程序进行查询、提交事务或者调用session.flush()的时候,都会使缓存和数据库进行同步,也就是刷新数据库
4 COMMIT
提交事务或者session.flush()时,刷新数据库;查询不刷新
5 ALWAYS:
每次进行查询、提交事务、session.flush()的时候都会刷数据库
ALWAYS和AUTO的区别:当hibernate缓存中的对象被改动之后,会被标记为脏数据(即与数据库不同步了)。当 session设置为FlushMode.AUTO时,hibernate在进行查询的时候会判断缓存中的数据是否为脏数据,是则刷数据库,不是则不刷,而always是直接刷新,不进行任何判断。很显然auto比always要高效得多。
[/size]
分享到:
评论

相关推荐

    HIbernate Session 详解

    ### HIbernate Session 详解 #### 一、Session在Hibernate中的地位及作用 在Hibernate框架中,`Session` 是一个非常核心且重要的组件。作为Hibernate提供的主要操作数据库的接口,`Session` 不仅承担着保存、更新...

    Open_Session_In_View详解.doc

    因为`Open Session In View`默认采用`FlushMode.NEVER`,这意味着Hibernate不会自动刷新session来同步数据库的变化。为了避免这个问题,可以采取以下几种解决办法: 1. **更改Flush Mode**:将`FlushMode`设置为`...

    HIBERNATE FOR NETBEANS 数据操作方法

    - 使用批处理操作,通过`Session`的`flushMode`和` batchSize`设置优化性能。 通过以上步骤,你可以在NetBeans中高效地利用Hibernate进行数据操作。这个过程简化了数据库操作,使得开发者可以专注于业务逻辑,而...

    hibernate二级缓存

    **hibernate二级缓存详解** 在Java的持久化框架Hibernate中,缓存是一种重要的优化手段,它能够显著提升数据库操作的效率。本项目提供的工程示例深入探讨了Hibernate的一级缓存和二级缓存机制,并通过实际运行验证...

    hibernate简单实例

    Hibernate支持一级缓存(Session级别)和二级缓存(SessionFactory级别)。一级缓存自动管理,而二级缓存可配置第三方缓存提供者如EhCache,提升性能。 10. **优化技巧**: - 使用批处理:通过`flushMode`和`...

    Hibernate_api

    - 使用Session的flushMode设置控制何时将脏数据同步到数据库。 8. 链接其他技术: - Spring框架集成:Spring提供了对Hibernate的支持,简化了配置和事务管理。 - JPA集成:Hibernate作为JPA的实现,可以使用JPA...

    Hibernate中Criteria的使用

    Criteria 和 DetachedCriteria 都可以使用Criterion 和 Projection 设置查询条件,可以设置 FetchMode(联合查询抓取的模式)、设置排序方式,对于 Criteria 还可以设置 FlushMode(冲刷 Session 的方式)和 ...

    快速了解Hibernate中的Session

    - Transaction的`commit()`调用:在提交事务前,若设置为`FlushMode.COMMIT`或`AUTO`,Session会先清除缓存,再执行SQL提交事务。 - 查询操作:`find()`或`iterate()`时,如果对象属性有变动,会先清理缓存以更新...

    Hibernate3.5官方开发文档pdf + html

    12. **事务管理**:讲解Hibernate的事务API,包括Transaction接口和FlushMode,以及如何与其他事务管理机制(如JTA)集成。 13. **事件监听器**:学习如何使用Hibernate事件系统来实现定制的行为,如预加载、预更新...

    hibernate中文参考手册

    FlushMode和CacheMode则控制了Session何时将数据同步到数据库。 5. **查询语言(HQL)**:Hibernate Query Language是面向对象的查询语言,类似于SQL,但操作的是对象和集合。它可以进行复杂的查询,如JOIN、GROUP ...

    Hibernate_demo

    4. 对于大数据量的操作,考虑使用批处理,如Session的flushMode和 batchSize属性。 总结,"Hibernate_demo"是一个生动的实例,展示了如何在实际项目中运用Hibernate5。通过分析这个项目,我们可以更好地理解和掌握...

    struts2.3+spring3.1.2+hibernate4.1.6 配置说明

    配置中包含了`sessionFactoryBeanName`、`singleSession`和`flushMode`等参数,用于指定SessionFactory的bean名称、是否使用单个Session以及flush模式。 在`web.xml`中,Struts2的配置通过`...

    hibernate学习总结

    - **Session**: Hibernate的会话接口,它是操作数据库的主要接口,负责对象的持久化操作。 - **SessionFactory**: 会话工厂,用于创建Session实例,它是线程安全的,应用启动时创建一次即可。 ### 2. Hibernate...

    hibernate错误解决方案

    org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker ...

    如何解决hibernate自动更新实体类的问题共5页.pd

    3. **Session的生命周期**:Hibernate的Session是管理对象状态的核心。默认情况下,Session在打开时启动一个单元OfWork,在关闭或flush时结束。在Session的生命周期内,所有对持久化对象的修改都会被跟踪。 4. **...

    hibernate-note学习笔记

    ### hibernate-note学习笔记知识点详解 #### 一、对象持久化 **1.1 概述** 对象持久化是指将程序中的对象状态保存到非易失性存储中(如硬盘或磁盘等),以便在系统重启后仍能保留这些状态。这种技术常用于将对象的...

    hibernate提升性能

    例如,`Session.flushMode()`和`Session.setBatchSize()`方法。 2. 延迟加载:Hibernate的懒加载机制可以降低内存消耗,但过多的延迟加载可能导致大量小查询,增加数据库压力。合理设计实体关系,适时使用立即加载...

    Hibernate中文教程

    ### Hibernate中文教程知识点详解 #### 一、简介与概述 **Hibernate** 是一款开源的对象关系映射(ORM)框架,它允许开发人员将Java对象映射到数据库表中,简化了数据持久化层的开发工作。该教程由一个技术翻译...

    使用Spring引起的错误

    通过保持Hibernate Session在整个请求周期内处于打开状态,可以避免在视图层因为Session关闭而导致的`LazyInitializationException`异常。Open Session In View可以通过两种方式进行配置: 1. **...

Global site tag (gtag.js) - Google Analytics