Не удается разрешить класс «HibernatePersistenceProvider»

У меня есть зависимость гибернации в build.gradle, но я получаю следующую ошибку

> Task :JPABootstrapping.main() FAILED
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named recipes
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
    at setup.JPABootstrapping.main(JPABootstrapping.java:10)

Execution failed for task ':JPABootstrapping.main()'.
> Process 'command '/usr/lib/jvm/java-14-openjdk-amd64/bin/java'' finished with non-zero exit value 1

persistence.xml находится под src/main/resources/META-INF

<persistence>
    <persistence-unit name = "recipes">
        <description>Hibernate Tips</description>
        <provider>
            org.hibernate.jpa.HibernatePersistenceProvider
        </provider>
        <exclude-unlisted-classes>false</exclude-unlisted-classes>
        <properties>
            <property name = "hibernate.dialect" value = "org.hibernate.dialect.PostgreSQL81Dialect" />
            <property name = "javax.persistence.jdbc.driver" value = "org.postgresql.Driver" />
            <property name = "javax.persistence.jdbc.url" value = "jdbc:postgresql://192.168.122.242:5432/recipes" />
            <property name = "javax.persistence.jdbc.user" value = "postgres" />
            <property name = "javax.persistence.jdbc.password" value = "postgres" />
        </properties>
    </persistence-unit>
</persistence>

Функция проверки IntelliJ говорит, что HibernatePersistenceProvider не может быть разрешена:

build.gradle выглядит следующим образом, содержит ядро ​​​​спящего режима и зависимости драйвера postgresql:

plugins {
    id 'java'
}

group 'org.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    implementation group: 'org.hibernate', name: 'hibernate-core', version: '5.0.5.Final'
    implementation group: 'org.postgresql', name: 'postgresql', version: '42.2.18'
    testCompile group: 'junit', name: 'junit', version: '4.12'
}

Не могли бы вы добавить файл build.gradle?

zforgo 19.12.2020 21:25

@zforgo добавил build.gradle.

lainatnavi 19.12.2020 21:59

Обновите ядро ​​гибернации до последней версии 5.4.26.Final

Edgar Khachatryan 19.12.2020 22:07

@EdgarKhachatryan обновление версии сработало.

lainatnavi 19.12.2020 22:16
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
4
2 044
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Тот hibernate-core действительно древний, точнее он был выпущен в 2015 году. Этот артефакт не содержит org.hibernate.jpa.HibernatePersistenceProvider класса. С тех пор Hibernate много раз переименовывался и подвергался рефакторингу. Последняя стабильная версия: implementation group: 'org.hibernate', name: 'hibernate-core', version: '5.4.26.Final' и этот артефакт имеет этот класс.

Дополнительная информация: Hibernate будет снова переименован. Новые координаты будут: implementation group: 'org.hibernate.orm', name: 'hibernate-core', version: '6.0.0.Final'.

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