事务不适用于会话工厂

时间:2015-01-30 10:43:16

标签: java spring hibernate

我有一个使用Spring + Hibernate会话工厂编写的现有代码。我有使用sessionFactory编写的DAO,它们是事务性的。

@Transactional
public class WorkingDAO<T> {

    private SessionFactory sessionFactory;

    public void save(T t){
        sessionFactory.getCurrentSession().save(t);
    }

}

我有单元测试,测试这个DAO工作正常。现在我想使用Spring JPA来减少编写DAO类的工作量。所以我使用了以下配置

<bean id="entityManagerFactory"      class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
      <property name="jpaDialect" ref="jpaDialect"/>
      <property name="jpaProperties">
....
</bean>

<bean id="SessionFactory" factory-bean="entityManagerFactory"
      factory-method="getSessionFactory" />

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

<tx:annotation-driven/>

但是,使用上述配置后,我的旧单元测试失败了。我可以使用现有的SessionFactory吗?或者我是否必须迁移到entityManager?

0 个答案:

没有答案