我有一个使用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?