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 是 Spring 框架中的一种事务管理机制,它提供了多种事务传播行为类型,...通过正确地配置 TransactionAttributes,可以提高应用程序的性能和可靠性。
总之,`transactionAttributes`是Spring中控制事务行为的关键元素,通过正确配置,可以有效地管理事务的生命周期,优化应用程序性能,并确保数据一致性。在实践中,应根据业务需求谨慎选择合适的事务传播行为和只读...
`xmlns`指定了Spring Bean Schema的命名空间,`xsi:schemaLocation`指定了Schema文件的位置,用于验证XML文档的正确性。 ```xml <!-- 配置数据源 --> <!-- 配置数据库连接信息 --> <!-- 配置连接池属性 ...
数据源的引用通过`<ref local="dataSource"/>`实现,确保了数据源能够正确地传递给Hibernate使用。 **二、事务管理器的配置** 接下来,事务管理器的配置至关重要,它决定了事务的开始、提交或回滚。Spring提供了...
Spring 事务管理是其核心特性之一,用于在执行数据库操作时确保数据的一致性和完整性。在Spring框架中,事务配置有多种方式,主要是基于代理机制的不同。...理解这些概念有助于正确配置和管理Spring中的事务。
你可以通过`transactionAttributes`属性来配置具体的事务属性,比如传播行为、隔离级别、读写模式等。 2. **基于XML的TxNamespace** 使用Spring的`tx`命名空间,可以在XML配置文件中更简洁地声明事务。例如: ```...
在深入探讨Spring事务管理配置之前,我们先简要回顾一下Spring框架的核心概念。Spring是一个开源的Java平台,它提供了一套全面的编程和配置...正确理解和应用这些配置,对于构建健壮、高效的企业级Java应用至关重要。
- `transactionAttributes`: 定义了事务传播行为,其中`*`表示所有方法都采用`PROPAGATION_SUPPORTS`传播行为,当发生`Exception`异常时则不参与事务。 #### 业务服务配置 最后,定义了两个业务服务bean:`...
通过合理的事务边界设置,可以确保业务操作的正确性,同时减少代码中的事务管理代码,提高代码的可读性和可维护性。不过,对于某些特定场景,如复杂的事务控制逻辑,编程式事务管理仍然是必要的选择。
4. **数据交互**:通过Hibernate进行数据访问操作,确保流程中的数据能够在数据库中正确存储和检索。 #### 六、总结 将JBPM集成到现有的Spring+Hibernate系统中是一项复杂但重要的工作。通过合理配置Spring和...
7. **整合测试**:集成后的系统需要进行充分的单元测试和集成测试,确保各个组件协同工作,事务管理正确无误。 通过以上步骤,我们可以成功地将Struts2和Spring集成在一起,利用Spring的强大功能管理Action类、事务...
总结起来,Spring事务管理提供了一套强大的机制,使得开发者可以轻松地在应用程序中管理和控制事务,无论是简单的JDBC操作还是复杂的ORM框架如Hibernate,都可以通过声明式或编码式的方式来确保事务的正确性。...
其中Hibernate 2相关的封装类位于org.springframework.orm.hibernate2.*包中,而Hibernate 3.0的封装类位于org.springframework.orm.hibernate3.*包中,需要根据您所选用Hibernate版本进行正确选择。 3、Lob字段...
了解这些事务传播行为对于正确地配置和管理事务至关重要。 #### 三、事务传播行为类型详解 ##### 1. PROPAGATION_REQUIRED - **描述**:这是最常见的事务传播行为类型。如果当前没有事务,那么会启动一个新的事务...