Spring Boot 2.1 EntityManagerFactory Bean не найден

У меня есть простой проект Spring Boot с JPA, Web и PostgreSQL. Я использую последнюю версию Spring Boot 2.1.3.ВЫПУСК.

После добавления простого приложения JpaRepository происходит сбой при запуске со следующей ошибкой:

***************************
APPLICATION FAILED TO START
***************************

Description:

Field dataMappingRepository in com.my.example.service.impl.SimpleServiceImpl required a bean named 'entityManagerFactory' that could not be found.

The injection point has the following annotations:
    - @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean named 'entityManagerFactory' in your configuration.

У меня есть простой класс @Service, например:

public class SimpleServiceImpl implements SimpleService {
  @Autowired private SimpleJpaRepository repo;
}

И JpaRepository:

public interface SimpleJpaRepository extends JpaRepository<SimpleEntity, Long> {}

А вот мой application.yml:

spring:
   datasource:
      url: jdbc:postgresql://localhost:5432/simple
      username: user
      password: pass
      driver-class-name: org.postgresql.Driver
   jpa:
      show-sql: false
      properties:
         hibernate:
            dialect: org.hibernate.dialect.PostgreSQLDialect
      hibernate:
         ddl-auto: validate

Если я изменю весна-загрузка-стартер-родитель на 2.0.8.ВЫПУСК, приложение запустится правильно.

Похоже, Hibernate не был настроен автоматически. Spring Boot 2.0.8 и 2.1.3 используют разные версии Hibernate (5.2.17.Final и 5.3.7.Final соответственно), и возможно, что один из jar-файлов для 5.3.7.Final был поврежден при загрузке. Попробуйте удалить Hibernate из кеша вашей системы сборки и заново собрать приложение.

Andy Wilkinson 22.02.2019 13:52

Можете ли вы показать свой pom.xml?

Simon Martinelli 22.02.2019 17:59
stackoverflow.com/questions/24520602/… проверить это
Vyshnav Ramesh Thrissur 22.02.2019 18:17

Вы включили @ComponentScan

Santosh b 25.02.2019 12:58
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
2
4
8 721
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Итак, наконец, проблема была, как сказал Энди Уилкинсон, с кэшированной зависимостью Hibernate.

После удаления папки org.hibernate из моего репозитория M2 и обновления проекта maven все работает правильно.

Я использую последнюю версию Spring Boot 2.1.2.RELEASE.
Но по ошибке в теге свойств я забыл удалить версию 4.3.5, как вы видите ниже, что вызывает путаницу между загруженной библиотекой. <properties><hibernate.version>4.3.5.Final</hibernate.version></properties>
В репозитории .m2 папки org.hibernate я скачал обе библиотеки версий. Удалите папку org.hibernate и обновите проект maven. Он будет работать.

Другие вопросы по теме