系统中是S2SH架构,系统中又用到了JBPM5工作流,JBPM5底层采用JPA持久化。这样系统中有两个事务。如何把这两个事务同步呢?
 <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
     <property name="jndiName" value="java:cdb-lop-ds" />
      <property name="resourceRef"><value>false</value></property>  
  </bean>
<!-- 配置事务管理器
        (理论上可配置多个transactionManager来适应多个数据源-不过不能是同一ID) -->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
<!--jbpm5实体管理工厂-->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="org.jbpm.persistence.jpa" />
<property name="dataSource" ref="dataSource" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
</bean> <!-- jbpm5 JPA事务管理-->
<bean id="jpaTransactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>

解决方案 »

  1.   

    什么叫两个事务同步?  在需要统一事务的方法体上加 JTA 事务的require模式 就可以管理事务了
      

  2.   


    JPA和Hibernate事务管理器都不一样。
      

  3.   

    JPA只是一种规范,hibernate是一种具体的实现,两者不冲突吧
      

  4.   


    两者并不冲突,我系统原来一部分持久化是采用hibernate的,流程部分持久化是采用JPA的。
    hibernate和JPA的事务管理器是不一样的。