0

Spring 3 と Hibernate 3 を使用する既存のプロジェクトがあります。データベースの一貫性を「保護」するために、次のコードがあります。プロジェクトを JPA に変換する場合、 JPA はandを使用しないため、 BeantransactionManager内のプロパティをどのように解決できますか?transactionInterceptorpersistence.xmldataSourcesessionFactory

<bean id="transactionInterceptor" 
   class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
   <props>
    <prop key="save">PROPAGATION_REQUIRED</prop>
   </props>
</property>
</bean>

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
  <property name="dataSource" ref="dataSource" />
  <property name="sessionFactory" ref="sessionFactory" />
</bean>
4

1 に答える 1

0

以下の xml スニペットのような構成を使用してみてください。これは Hibernate 4 でテストされていますが、バージョン 3 でも動作すると予想されます。

<!-- EntityManagerFactory configuration that doesn't need a persistence.xml -->
<bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
      p:dataSource-ref="dataSource"
      p:packagesToScan="${jpa.entity.packages}">

    <property name="jpaVendorAdapter">
        <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"
              p:showSql="${hibernate.show_sql}"/>
    </property>

    <property name="jpaProperties">
        <props>
            <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>
            <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>
        </props>
    </property>
</bean>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>

<!-- Scans for classes/methods with @Transactional annotation to apply the 
     transaction management aspect (TransactionInterceptor) on them. -->
<tx:annotation-driven/>
于 2013-06-26T09:02:58.757 に答える