Первоначально в нашем проекте мы использовали spring 3 + hibernate 3. Недавно было решено обновить сторонние jar-файлы, поскольку часть этого spring обновлена до 4, но не в спящем режиме (по-прежнему поддерживается спящий режим 3). Теперь мы не изменили код для весеннего обновления 4, и когда мы выполняем проект LocalContainerEntityManagerFactoryBean, происходит сбой. Я дал объявление файла контекста и трассировку стека ошибок ниже. Теперь вопрос в том, как я могу заставить существующий проект работать на весне 4 без обновления спящего режима.
С Spring ORM 4.1.6 LocalContainerEntityManagerFactoryBean пытается загрузить специфичный для JPA 2.0 импорт спящего режима (то есть классы hibernate 4 jar) и терпит неудачу.
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceXmlLocation" value="classpath:META-INF/persistence.xml"/>
<property name="persistenceUnitName" value="casp-portal"/>
</bean>
<!-- Transaction manager for a single JPA EntityManagerFactory (alternative to JTA -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<!-- enable the configuration of transactional behavior based on annotations -->
<tx:annotation-driven transaction-manager="transactionManager"/>
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
Технологии, используемые в настоящее время в проекте: Hibernate 3+ с недавним обновлением стека технологий Spring заменен на версию 4.1. Spring 4.1 заставляет использовать JPA 2.0, в то же время он обеспечивает обратную поддержку, то есть поддерживает JPA 1.0, см. ниже описание, взятое с сайта Spring.
Трассировка стека ошибок