Я создал POC с Spring Boot и JPA, используя spring-boot-starter-data-jpa, и мое решение работает довольно хорошо. Моя проблема возникает, когда я пытаюсь добавить то же решение в старый проект, который использует Spring 4 и hibernate JPA 2.1 версии. Когда я развернул войну в weblogic, первая ошибка, с которой я столкнулся, была не в состоянии автоматически связать репозиторий, поэтому я добавил @EnableJpaRepositories
. Я даже пытался добавить spring.datasource.jndi-name=EXAMPLE_Data_Source
, где EXAMPLE_Data_Source
- это мой источник данных, но безуспешно.
Класс приложения:
@Configuration
@EnableWs
@ComponentScan("com.example.package")
@EnableJpaRepositories(basePackages = {"com.example.repository","com.example.entity"})
public class AppConfig extends WsConfigurerAdapter { //WsConfigurerAdapter is spring-ws-core 2.2.0 Release
@Autowire
MyRepository repository;
Класс репозитория:
public interface MyRepository extends JpaRepository<EntityClass, EntityPKey> {
@Query("select c from EntityClass c where ID = :param1 and TYPE = :param2 and :param3 between FROM_DATE and TO_DATE ")
EntityClass entityClass(@Param("param1") int param1, @Param("param2")
char param2, @Param("param3") Date param3);
}
Теперь я получаю ошибку ниже:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined" weblogic.application.ModuleException:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined
at weblogic.application.internal.ExtensibleModuleWrapper.start(ExtensibleModuleWrapper.java:140)
at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:124)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:233)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:228)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:45)
Truncated. see log file for complete stacktrace
Caused By: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:641)
at org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1157)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:280)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:328)
Truncated. see log file for complete stacktrace
Я должен заставить его работать над старым весенним проектом, который развернут в weblogic.
Вопросы 1: Будет ли этот способ решения моей проблемы работать для среды Spring или только для Springboot?
Вопрос 2: Какие конфигурации мне не хватает?
Вопрос 3: Пожалуйста, укажите мне рабочий пример. Я изо всех сил пытаюсь сделать эту работу.
Spring webmvc и spring-tx версии 4.0.6
Пожалуйста, будьте немного более подробны в своем объяснении. Я все еще очень младший.
Заранее спасибо.