Рубрики
Без рубрики

Ошибка спячки “Нет поставщика настойчивости для EntityManager”

Краткое объяснение и решение ошибки “Нет поставщика настойчивости для EntityManager”.

Автор оригинала: baeldung.

1. Введение

В этом учебнике мы увидим, как решить общую ошибку Hibernate – “Нет поставщика настойчивости для EntityManager”. Проще говоря, поставщик сохранения относится к конкретной реализации JPA, используемой в нашем приложении для сохранения объектов в базе данных.

Чтобы узнать больше о JPA и ее реализации, мы можем сослаться на нашу статью о разнице между JPA, Hibernate и EclipseLink .

2. Что вызывает ошибку

Мы увидим ошибку, когда приложение не знает, какой поставщиком настойчивости следует использовать .

Это происходит, когда поставщик настойчивости не упоминается в настойчивость.xml файл и не настроен в НастойчивостьUnitInfo класса реализации.

3. Исправление ошибки

Чтобы исправить эту ошибку, мы просто должны определить поставщика настойчивости в настойчивость.xml файл:

org.hibernate.jpa.HibernatePersistenceProvider

Или, если мы используем Спячка версия 4.2 или старше :

org.hibernate.ejb.HibernatePersistence

В случае, если мы реализовали НастойчивостьUnitInfo интерфейс в нашем приложении, мы также должны переопределить getPersistenceProviderClassName ()
метод:

@Override
public String getPersistenceProviderClassName() {
    return HibernatePersistenceProvider.class.getName();
}

Чтобы убедиться, что все необходимые банки Hibernate доступны, важно добавить спящий ядро зависимости в пом.xml файл:


    org.hibernate
    hibernate-core
    ${hibernate.version}

4. Заключение

Подводя итог, мы видели возможные причины ошибки Hibernate “Нет поставщика настойчивости для EntityManager” и различные способы ее решения.

Как обычно, образец проекта Hibernate доступен более на GitHub .