`
wjc_3306
  • 浏览: 30260 次
  • 性别: Icon_minigender_1
  • 来自: 山西
社区版块
存档分类
最新评论

transactionAttributes要正确配置啊

 
阅读更多
transactionAttributes的属性的意义:

PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。

(适用于处理一个或多个交叉insert,update,delete)
PROPAGATION_SUPPORTS--支持当前事务,如果当前没有事务,就以非事务方式执行。

(适用于处理一个或多个交叉insert,update,delete,query)
PROPAGATION_MANDATORY--支持当前事务,如果当前没有事务,就抛出异常。

(适用于检测query是否存在insert,update,delete) 
PROPAGATION_REQUIRES_NEW--新建事务,如果当前存在事务,把当前事务挂起。
PROPAGATION_NOT_SUPPORTED--以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。
PROPAGATION_NEVER--以非事务方式执行,如果当前存在事务,则抛出异常。

(适用于全query)
PROPAGATION_NESTED--如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则进行与PROPAGATION_REQUIRED类似的操作。

配置的时候需要注意啦,如果纯query都使用PROPAGATION_REQUIRED,查询100条以上的数据查询效率时间明显加长。

自己做个测试113条数据,4个字段

PERMISSION_ID   VARCHAR2(20) not null,
  PERMISSION_NAME VARCHAR2(200) not null,
  FUNCTION_ID     VARCHAR2(20) not null,
  FLAG            CHAR(1) not null

查询:

Session s = sessionFactory.openSession();
  Date date1 = new Date();
  List suList = s.createQuery("from SshPermission ").list();
  Date date2 = new Date();
  long i = date2.getTime() - date1.getTime();
  System.out.println(i);

使用PROPAGATION_NEVER

703

使用PROPAGATION_REQUIRED

766

分享到:
评论

相关推荐

    transactionAttributes各属性意义及配置

    transactionAttributes 各属性意义及配置 TransactionAttributes 是 Spring 框架中的一种事务管理机制,它提供了多种事务传播行为类型,...通过正确地配置 TransactionAttributes,可以提高应用程序的性能和可靠性。

    Spring配置中transactionAttributes的使用方法介绍

    总之,`transactionAttributes`是Spring中控制事务行为的关键元素,通过正确配置,可以有效地管理事务的生命周期,优化应用程序性能,并确保数据一致性。在实践中,应根据业务需求谨慎选择合适的事务传播行为和只读...

    spring框架配置bean的高级属性

    `xmlns`指定了Spring Bean Schema的命名空间,`xsi:schemaLocation`指定了Schema文件的位置,用于验证XML文档的正确性。 ```xml <!-- 配置数据源 --> <!-- 配置数据库连接信息 --> <!-- 配置连接池属性 ...

    事物管理配置文件.txt

    数据源的引用通过`<ref local="dataSource"/>`实现,确保了数据源能够正确地传递给Hibernate使用。 **二、事务管理器的配置** 接下来,事务管理器的配置至关重要,它决定了事务的开始、提交或回滚。Spring提供了...

    Spring事务配置的五种方式

    Spring 事务管理是其核心特性之一,用于在执行数据库操作时确保数据的一致性和完整性。在Spring框架中,事务配置有多种方式,主要是基于代理机制的不同。...理解这些概念有助于正确配置和管理Spring中的事务。

    Spring中的四种声明式事务的配置

    你可以通过`transactionAttributes`属性来配置具体的事务属性,比如传播行为、隔离级别、读写模式等。 2. **基于XML的TxNamespace** 使用Spring的`tx`命名空间,可以在XML配置文件中更简洁地声明事务。例如: ```...

    Spring事务管理配置

    在深入探讨Spring事务管理配置之前,我们先简要回顾一下Spring框架的核心概念。Spring是一个开源的Java平台,它提供了一套全面的编程和配置...正确理解和应用这些配置,对于构建健壮、高效的企业级Java应用至关重要。

    hibernate链接oracle

    - `transactionAttributes`: 定义了事务传播行为,其中`*`表示所有方法都采用`PROPAGATION_SUPPORTS`传播行为,当发生`Exception`异常时则不参与事务。 #### 业务服务配置 最后,定义了两个业务服务bean:`...

    spring事务管理

    通过合理的事务边界设置,可以确保业务操作的正确性,同时减少代码中的事务管理代码,提高代码的可读性和可维护性。不过,对于某些特定场景,如复杂的事务控制逻辑,编程式事务管理仍然是必要的选择。

    jbpm 整合到现有的spring+hibernate系统

    4. **数据交互**:通过Hibernate进行数据访问操作,确保流程中的数据能够在数据库中正确存储和检索。 #### 六、总结 将JBPM集成到现有的Spring+Hibernate系统中是一项复杂但重要的工作。通过合理配置Spring和...

    struts spring集成【下】

    7. **整合测试**:集成后的系统需要进行充分的单元测试和集成测试,确保各个组件协同工作,事务管理正确无误。 通过以上步骤,我们可以成功地将Struts2和Spring集成在一起,利用Spring的强大功能管理Action类、事务...

    Spring事务管理

    总结起来,Spring事务管理提供了一套强大的机制,使得开发者可以轻松地在应用程序中管理和控制事务,无论是简单的JDBC操作还是复杂的ORM框架如Hibernate,都可以通过声明式或编码式的方式来确保事务的正确性。...

    ssh(structs,spring,hibernate)框架中的上传下载

    其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,需要根据您所选用Hibernate版本进行正确选择。  3、Lob字段...

    Spring在Transaction事务传播行为种类

    了解这些事务传播行为对于正确地配置和管理事务至关重要。 #### 三、事务传播行为类型详解 ##### 1. PROPAGATION_REQUIRED - **描述**:这是最常见的事务传播行为类型。如果当前没有事务,那么会启动一个新的事务...

Global site tag (gtag.js) - Google Analytics