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 .