Когда я устанавливаю defaultAutoCommit в false, мои транзакции не сохраняются в базе данных. Кто-нибудь знает, почему мои данные не сохраняются в базе данных?Почему мои транзакции не совершаются?
Я использую @Transactional моих методов оказывается, что сделки совершаются потому, что статус 3
статус транзакции https://docs.jboss.org/jbossas/javadoc/4.0.2/javax/transaction/Status.java.html
Это журнале транзакций
2014-12- 10 14: 39: 07,132 TRACE [http-apr-8080-exec-2] CacheSynchronization - транзакция до завершения обратного вызова
2014-12-10 14: 39: 07,132 TRACE [http-apr-8080- Exec-2] CacheSynchronization - сделка после завершения обратного вызова, состояние: 3
<aop:aspectj-autoproxy/>
<context:annotation-config/>
<!-- ******************************************************************** -->
<!-- Scan for dao layer annotated beans -->
<!-- ******************************************************************** -->
<context:component-scan base-package="package.dao" scoped-proxy="interfaces"/>
<!-- ******************************************************************** -->
<!-- Mark bean transactions as annotation driven -->
<!-- ******************************************************************** -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<!-- ******************************************************************** -->
<!-- PropertyConfigurer for the DAO -->
<!-- ******************************************************************** -->
<context:property-placeholder location="classpath:prop-dao.properties"/>
<!-- ******************************************************************** -->
<!-- Setup the transaction manager -->
<!-- ******************************************************************** -->
<!-- Using Atomikos Transaction Manager -->
<bean class="com.atomikos.icatch.jta.UserTransactionManager" destroy-method="close" id="atomikosTransactionManager" init-method="init">
<property name="forceShutdown" value="true"/>
<property name="startupTransactionService" value="true"/>
<property name="transactionTimeout" value="600000"/>
</bean>
<bean class="com.atomikos.icatch.jta.UserTransactionImp" id="atomikosUserTransaction"/>
<!-- Configure the Spring framework to use JTA transactions from Atomikos -->
<bean class="org.springframework.transaction.jta.JtaTransactionManager" id="transactionManager">
<property name="transactionManager" ref="atomikosTransactionManager"/>
<property name="userTransaction" ref="atomikosUserTransaction"/>
<property name="transactionSynchronizationName" value="SYNCHRONIZATION_ON_ACTUAL_TRANSACTION"/>
</bean>
<!-- ******************************************************************** -->
<!-- Setup a data source -->
<!-- ******************************************************************** -->
<!-- Using Apache DBCP Data Sources -->
<bean class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" name="propDS">
<property name="driverClassName" value="${prop.connection.driver_class}"/>
<property name="username" value="${prop.connection.username}"/>
<property name="password" value="${prop.connection.password}"/>
<property name="url" value="${prop.connection.url}"/>
<property name="maxIdle" value="${prop.minPoolSize}"/>
<property name="maxActive" value="${prop.maxPoolSize}"/>
<property name="defaultAutoCommit" value="false"/>
</bean>
<!-- ******************************************************************** -->
<!-- Setup each persistence unit -->
<!-- ******************************************************************** -->
<!-- Configure a JPA vendor adapter -->
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" id="propJPAVendorAdapter">
<property name="showSql" value="${prop.show_sql}"/>
<property name="generateDdl" value="${prop.generateDdl}"/>
<property name="databasePlatform" value="${prop.dialect}"/>
</bean>
<!-- EntityManager Factory that brings together the persistence unit, datasource, and JPA Vendor -->
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="prop">
<property name="dataSource" ref="propDS"/>
<property name="persistenceUnitName" value="prop"/>
<property name="jpaVendorAdapter" ref="propJPAVendorAdapter"/>
<property name="jpaPropertyMap">
<map>
<entry key="hibernate.transaction.manager_lookup_class" value="com.atomikos.icatch.jta.hibernate3.TransactionManagerLookup"/>
<entry key="hibernate.connection.release_mode" value="on_close"/>
</map>
</property>
</bean>
EDIT: Я попытался совершить вручную в конце моего метода, но данные еще не были сохранены
@Autowired предполагается совершить в конце транзакции. Я попытался выполнить вручную в конце моего метода, но данные все еще не были сохранены, и я получил сообщение о том, что транзакция уже завершена, возможно, откат. 'org.springframework.transaction.UnexpectedRollbackException: транзакция JTA уже завершена - возможно, откат назад – darthNater
@ user2631291 no it is not – darrengorman
Есть ли способ проверить, была ли транзакция отменена? – darthNater