`
whoosh
  • 浏览: 234942 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

JPA的FlushModeType与Hibernate的FlushMode

    博客分类:
  • ORM
 
阅读更多

Hibernate session FlushMode有五种属性:
1、NEVEL:已经废弃了,被MANUAL取代了
2 MANUAL:
如果FlushMode是MANUAL或NEVEL,在操作过程中hibernate会将事务设置为readonly,所以在Spring与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 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要高效得多。

 

JPA的FlushModeType只有两种:

1、COMMIT:仅当提交事务时才能进行刷新

2、AUTO:(默认)在执行查询时进行刷新


分享到:
评论

相关推荐

    JPA注解 和hibernate 建表

    JPA注解和Hibernate建表 一、JPA概述 Java Persistence API(JPA)是Sun官方提出的Java持久化规范,它只是一个规范不是一个产品。JPA的主要目标是提供一种简洁、易用的方式来访问、操作和管理Java应用程序中的数据...

    spring3.0.5与JPA2.0(hibernate3.6)的集成详细说明

    本篇将详细讲解如何将Spring 3.0.5与JPA 2.0(基于Hibernate 3.6)进行集成,以构建高效、灵活的应用程序。 首先,让我们了解Spring 3.0.5的核心特性。Spring 3.0引入了若干改进和新特性,包括对JSR-303(Bean ...

    Spring3 MVC REST + JPA2 (Hibernate 3.6.1) 构建投票系统 - 3. JPA2(Hibernate实现)

    在本项目中,我们主要探讨如何使用Spring3 MVC REST与JPA2(通过Hibernate 3.6.1实现)构建一个投票系统。Spring MVC作为Java领域广泛应用的MVC框架,可以方便地处理HTTP请求和响应,而JPA2(Java Persistence API的...

    JPA所需Hibernate3的相关包及一个JPA的Demo

    2. **JPA Provider**:因为Hibernate也是JPA的提供商,所以可能包含`hibernate-entitymanager`包,它提供了JPA的实现。 3. **数据库驱动**:为了与特定的数据库进行通信,你需要相应的数据库驱动,例如`mysql-...

    JPA与Hibernate的优缺点

    ### JPA与Hibernate的优缺点分析 #### Java Persistence API (JPA) Java Persistence API(简称JPA)是Java平台提供的一套对象关系映射(ORM)标准,它旨在为Java应用提供一种统一、灵活的数据持久化解决方案。JPA...

    JPA和Hibernate的关系

    ### JPA与Hibernate的关系 #### 一、JPA概述 **Java Persistence API (JPA)** 是一种用于管理Java应用中的关系型数据库的标准API。它的主要目的是为了提供一套统一的、可移植的对象-关系映射(ORM)解决方案。JPA...

    jpa之使用hibernate示例代码

    Hibernate不仅实现了JPA规范,还提供了许多额外的功能,如二级缓存、查询语言HQL和 Criteria API等,极大地简化了Java开发人员与数据库交互的工作。 在"jpa之使用hibernate示例代码"中,我们可能会涉及以下关键知识...

    JPA(hibernate) Dao 和 DaoSupport

    **JPA(Java Persistence API)与Hibernate:** JPA是Java平台上的一个标准,它定义了如何在Java应用中管理关系数据库。它提供了一种面向对象的方式来操作数据库,通过ORM(对象关系映射)技术将Java对象与数据库表...

    spring mvc 与JPA/Hibernate的整合示例

    在模型层,定义与数据库表对应的实体类,使用JPA的`@Entity`注解标识。同时,使用`@Table`指定表名,`@Id`标记主键,`@GeneratedValue`定义主键生成策略。 最后,在控制器层,使用`@RestController`或`@Controller`...

    使用JPA反向工程 Hibernate工程反向

    **JPA反向工程与Hibernate反向工程** Java Persistence API(JPA)是Java平台上的一个标准,用于管理和持久化Java对象到关系数据库。它提供了一种面向对象的方式来操作数据库,使得开发人员可以专注于业务逻辑,而...

    Spring3, JPA2( Hibernate4)整合开发DWP

    在本项目中,我们主要探讨的是如何将Spring3、JPA2(Hibernate4)整合到一个Dynamic Web Project中,以实现高效、灵活的企业级数据库管理。这是一个基础的Java Web应用程序开发教程,旨在帮助开发者理解如何在...

    struts2.1.8+JPA3.0(hibernate实现)+spring2.5整合jar

    Struts2.1.8、JPA3.0(Hibernate实现)和Spring2.5是三个重要的Java开发框架,它们的整合为构建大型企业级应用提供了强大的支持。在这个压缩包中,包含了这些框架的核心库和其他相关依赖,方便开发者快速集成到自己...

    JPA+hibernate所需的JAR

    jpa基于hibernate的实现所需的jar之一,一共有3个jar 这是从里面提取出来的 hibernate-annotations-3.4.0 hibernate-distribution-3.3.1 hibernate-entitymanager-3.4.0 一共16个jar包括一个Mysql的JDBC驱动

    Spring + JPA + Hibernate配置

    标题“Spring + JPA + Hibernate配置”涉及到的是Java开发中常用的三个框架——Spring、Java Persistence API (JPA) 和Hibernate的集成与配置。这是一份关于如何将这些框架结合使用的教程或参考资料,可能包含了实现...

    jpa中hibernate实现相关jar包

    3. **hibernate-jpa-2.x-api**: 这个jar包包含了JPA的API定义,是与Hibernate交互时所需的依赖。 4. **hibernate-validator**: Hibernate的验证框架,符合JSR-303/349标准,用于校验实体属性。 5. **javassist**: ...

    基于JPA规范实现hibernate依懒的jar包

    3. **JDBC驱动**: 根据你的数据库类型,你需要相应的JDBC驱动jar包,如MySQL Connector/J、Oracle JDBC驱动等,以便Hibernate与数据库进行通信。 4. **持久化元数据**: 包括Hibernate的配置文件(如hibernate.cfg....

    springboot+jpa(hibernate配置redis为二级缓存) springboot2.1.4

    在本文中,我们将深入探讨如何在Spring Boot 2.1.4.RELEASE项目中结合JPA(Java Persistence API)和Hibernate实现Redis作为二级缓存。首先,我们需要理解这些技术的基本概念。 Spring Boot 是一个用于简化Spring...

    jpa + hibernate 例子

    而**Hibernate**则是一个实现了JPA规范的开源ORM框架,它简化了数据库操作,使得开发者可以使用Java对象来操作数据库,而无需编写大量的SQL语句。 在**JPA + Hibernate**的例子中,通常会涉及以下几个核心概念: 1...

    JPA-Hibernate包

    **JPA(Java Persistence API)与Hibernate:关系数据库持久化框架** JPA是Java平台上的一个标准,由JSR 317定义,用于管理Java应用程序中的对象持久性。它是Oracle公司提出的,目的是为了简化Java应用程序对关系...

    hibernate-jpa-2.1-api-1.0.2.Final-API文档-中文版.zip

    赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...

Global site tag (gtag.js) - Google Analytics