<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"/> </bean> <bean id="baseTransactionProxy" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true"> <property name="transactionManager" ref="transactionManager"/> </bean> <bean id="jbpmOAProcessServiceTransaction" parent="baseTransactionProxy" lazy-init="true"> <property name="target" ref="jbpmOAProcessService" /> <property name="transactionAttributes"> <props> <prop key="*"> PROPAGATION_REQUIRED,-BusinessServiceException </prop> </props> </property> </bean> 这个是部分xml配置 这是JbpmTemplate的execute方法内部的异常代码 try { session.save(info); }catch(Exception e) { throw new BusinessServiceException(e); } session.flush(); save出现异常,事物没有回滚
时间: 2023-12-29 21:04:54 浏览: 32
根据您提供的配置和代码,从理论上来说,如果在 save 方法中出现了异常,由于配置了事务管理器和事务代理,应该会回滚事务,使得 save 操作不会影响数据库的一致性。
但是,为了确定问题的真正原因,还需要进一步排查。您可以尝试按照以下步骤进行排查:
1. 确认是否启用了事务管理器和事务代理,并且配置正确。
2. 确认是否正确捕获了异常并抛出了 BusinessServiceException。
3. 确认是否在调用 execute 方法的时候使用了 jbpmOAProcessServiceTransaction 的代理对象。
4. 确认是否在方法调用链的上层捕获了 BusinessServiceException,从而导致事务无法回滚。
如果您已经核对了以上步骤,仍然无法解决问题,建议您将完整的配置文件和代码提供给技术支持团队进行更详细的排查。
相关问题
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"/>
This bean defines a transaction manager for managing transactions in Spring applications using JDBC. It is used to manage transactions on JDBC connections obtained from a DataSource. The name of the bean is "transactionManager" and the class used is "org.springframework.jdbc.datasource.DataSourceTransactionManager". This bean must be defined in the Spring configuration file for JDBC-based transactions.
<bean id="TransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
这是一个Spring配置文件中的组件定义标签,它的作用是定义一个数据源事务管理器的实例,并将其注册到Spring容器中。数据源事务管理器是用来管理数据库事务的工具,它可以协调多个事务,并保证它们在一个事务上下文中一起执行或一起回滚。在这个例子中,使用的是DataSourceTransactionManager类,它是Spring框架中与JDBC数据源集成的一个核心组件,负责处理JDBC连接、事务提交、回滚等操作。这个实例可以通过属性注入的方式进行配置,比如设置数据源、事务超时时间等。通过这种方式,Spring框架就可以在需要使用事务的地方,自动地为数据库操作开启、提交或回滚事务,保证数据的一致性和完整性。