Данные Spring jpa- Определен бит bean с именем ‘entityManagerFactory’; Инъекция автоуведомленных зависимостей не удалась

Я разрабатываю приложение, используя весенние данные jpa, hibernate, mysql, tomcat7, maven, и это создает ошибку. Я пытаюсь понять это, но я потерпел неудачу.

ошибка Не удается разрешить ссылку на bean ‘entityManagerFactory’ при настройке аргумента конструктора; Не определен bean с именем «entityManagerFactory»; Инъекция автоуведомленных зависимостей не удалась

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'initDbService': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.wahid.cse.repository.RoleRepository org.wahid.cse.service.InitDbService.roleRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleRepository': Cannot create inner bean '(inner bean)#c08f81' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#c08f81': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:292) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1185) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:195) Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private org.wahid.cse.repository.RoleRepository org.wahid.cse.service.InitDbService.roleRepository; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleRepository': Cannot create inner bean '(inner bean)#c08f81' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#c08f81': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:508) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:289) ... 22 more Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'roleRepository': Cannot create inner bean '(inner bean)#c08f81' of type [org.springframework.orm.jpa.SharedEntityManagerCreator] while setting bean property 'entityManager'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#c08f81': Cannot resolve reference to bean 'entityManagerFactory' while setting constructor argument; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'entityManagerFactory' is defined at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:290) at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1456) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1197) at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:480) ... 24 more 

вот мой файл ApplicationContext.xml

                 true create org.hibernate.dialect.MySQLDialect           

Вот pom.xml

  4.0.0 org.ferdous.wahid java-blog-aggregator 0.0.1-SNAPSHOT war   4.0.5.RELEASE 3.0.4 3.1.0    org.apache.commons commons-dbcp2 2.0.1   mysql mysql-connector-java 5.1.31   org.springframework.data spring-data-jpa 1.6.1.RELEASE   org.hibernate hibernate-entitymanager 4.3.5.Final   javax.servlet javax.servlet-api ${servlet-api-version} provided  <!--  javax.servlet.jsp javax.servlet.jsp-api 2.2.1  -->  jstl jstl 1.2   org.apache.tiles tiles-core ${apache.tiles}   org.apache.tiles tiles-jsp ${apache.tiles}   org.slf4j slf4j-log4j12 1.7.7    org.springframework spring-core ${org.springframework.version}    org.springframework spring-expression ${org.springframework.version}    org.springframework spring-beans ${org.springframework.version}    org.springframework spring-aop ${org.springframework.version}    org.springframework spring-context ${org.springframework.version}    org.springframework spring-context-support ${org.springframework.version}    org.springframework spring-tx ${org.springframework.version}    org.springframework spring-jdbc ${org.springframework.version}    org.springframework spring-orm ${org.springframework.version}    org.springframework spring-oxm ${org.springframework.version}    org.springframework spring-web ${org.springframework.version}    org.springframework spring-webmvc ${org.springframework.version}    org.springframework spring-webmvc-portlet ${org.springframework.version}    org.springframework spring-test ${org.springframework.version} test      org.apache.tomcat.maven tomcat7-maven-plugin 2.2   org.apache.maven.plugins maven-compiler-plugin 3.1  1.7 1.7     при  4.0.0 org.ferdous.wahid java-blog-aggregator 0.0.1-SNAPSHOT war   4.0.5.RELEASE 3.0.4 3.1.0    org.apache.commons commons-dbcp2 2.0.1   mysql mysql-connector-java 5.1.31   org.springframework.data spring-data-jpa 1.6.1.RELEASE   org.hibernate hibernate-entitymanager 4.3.5.Final   javax.servlet javax.servlet-api ${servlet-api-version} provided  <!--  javax.servlet.jsp javax.servlet.jsp-api 2.2.1  -->  jstl jstl 1.2   org.apache.tiles tiles-core ${apache.tiles}   org.apache.tiles tiles-jsp ${apache.tiles}   org.slf4j slf4j-log4j12 1.7.7    org.springframework spring-core ${org.springframework.version}    org.springframework spring-expression ${org.springframework.version}    org.springframework spring-beans ${org.springframework.version}    org.springframework spring-aop ${org.springframework.version}    org.springframework spring-context ${org.springframework.version}    org.springframework spring-context-support ${org.springframework.version}    org.springframework spring-tx ${org.springframework.version}    org.springframework spring-jdbc ${org.springframework.version}    org.springframework spring-orm ${org.springframework.version}    org.springframework spring-oxm ${org.springframework.version}    org.springframework spring-web ${org.springframework.version}    org.springframework spring-webmvc ${org.springframework.version}    org.springframework spring-webmvc-portlet ${org.springframework.version}    org.springframework spring-test ${org.springframework.version} test      org.apache.tomcat.maven tomcat7-maven-plugin 2.2   org.apache.maven.plugins maven-compiler-plugin 3.1  1.7 1.7     ,  4.0.0 org.ferdous.wahid java-blog-aggregator 0.0.1-SNAPSHOT war   4.0.5.RELEASE 3.0.4 3.1.0    org.apache.commons commons-dbcp2 2.0.1   mysql mysql-connector-java 5.1.31   org.springframework.data spring-data-jpa 1.6.1.RELEASE   org.hibernate hibernate-entitymanager 4.3.5.Final   javax.servlet javax.servlet-api ${servlet-api-version} provided  <!--  javax.servlet.jsp javax.servlet.jsp-api 2.2.1  -->  jstl jstl 1.2   org.apache.tiles tiles-core ${apache.tiles}   org.apache.tiles tiles-jsp ${apache.tiles}   org.slf4j slf4j-log4j12 1.7.7    org.springframework spring-core ${org.springframework.version}    org.springframework spring-expression ${org.springframework.version}    org.springframework spring-beans ${org.springframework.version}    org.springframework spring-aop ${org.springframework.version}    org.springframework spring-context ${org.springframework.version}    org.springframework spring-context-support ${org.springframework.version}    org.springframework spring-tx ${org.springframework.version}    org.springframework spring-jdbc ${org.springframework.version}    org.springframework spring-orm ${org.springframework.version}    org.springframework spring-oxm ${org.springframework.version}    org.springframework spring-web ${org.springframework.version}    org.springframework spring-webmvc ${org.springframework.version}    org.springframework spring-webmvc-portlet ${org.springframework.version}    org.springframework spring-test ${org.springframework.version} test      org.apache.tomcat.maven tomcat7-maven-plugin 2.2   org.apache.maven.plugins maven-compiler-plugin 3.1  1.7 1.7     

RoleRepository – это

 import org.springframework.data.jpa.repository.JpaRepository; import org.wahid.cse.entity.Role; public interface RoleRepository extends JpaRepository{ } 

Spring Data JPA по умолчанию ищет EntityManagerFactory с именем entityManagerFactory . EnableJpaRepositories эту часть Javadoc of EnableJpaRepositories или Table 2.1 документации Spring JPA.

Это означает, что вам либо нужно переименовать ваш компонент entityManagerFactory в entityManagerFactory либо изменить конфигурацию Spring для:

  

(если вы используете XML)

или

@EnableJpaRepositories(basePackages="your.package", entityManagerFactoryRef="emf")

(если вы используете Java Config)

В контексте приложения измените компонент с id из entityManagerFactory на entityManagerFactory :

      true create org.hibernate.dialect.MySQLDialect       

к

      true create org.hibernate.dialect.MySQLDialect       

У меня был этот вопрос после перехода от spring-boot-starter-data-jpa ver. От 1.5.7 до 2.0.2 (от старого спящего режима до спящего режима 5.2). В моем classе @Configuration я ввел entityManagerFactory и transactionManager .

 //I've got my data source defined in application.yml config file, //so there is no need to configure it from java. @Autowired DataSource dataSource; @Bean public LocalContainerEntityManagerFactoryBean entityManagerFactory() { //JpaVendorAdapteradapter can be autowired as well if it's configured in application properties. HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(); vendorAdapter.setGenerateDdl(false); LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean(); factory.setJpaVendorAdapter(vendorAdapter); //Add package to scan for entities. factory.setPackagesToScan("com.company.domain"); factory.setDataSource(dataSource); return factory; } @Bean public PlatformTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) { JpaTransactionManager txManager = new JpaTransactionManager(); txManager.setEntityManagerFactory(entityManagerFactory); return txManager; } 

Также не забудьте добавить зависимость hibernate-entitymanager к pom.xml, иначе EntityManagerFactory не будет найден в пути к classам:

  org.hibernate hibernate-entitymanager 5.0.12.Final  

Я думаю, что это связано с новой версией весенней загрузки плюс использование весенних данных JPA, просто замените аннотацию @Bean выше общедоступной LocalContainerEntityManagerFactoryBean entityManagerFactory () на @Bean (name = “entityManagerFactory”)

Определение имени компонента должно решить проблему

  • Что рекомендуется для нереста streamов из сервлета в Tomcat
  • Как установить базовый url для restа в весенний ботинок?
  • Вручную вызовите функцию Spring Annotation Validation
  • Ни BindingResult, ни обычный целевой объект для bean-имени, ansible как атрибут запроса
  • @ModelAttribute аннотация, когда ее использовать?
  • Отключить Spring Security для OPTIONS Http Method
  • spring Exception при запуске приложения в WebSphere с java 8
  • Как вручную установить аутентифицированного пользователя в Spring Security / SpringMVC
  • Spring MVC - HttpMediaTypeNotAcceptableException
  • Spring MVC: Как выполнить проверку?
  • Spring MVC: сложный объект как GET @RequestParam
  • Давайте будем гением компьютера.