无法解析类“HibernatePersistenceProvider”

问题描述

我在 build.gradle 中有 hibernate 依赖项,但出现以下错误

> 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.xmlsrc/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 无法解析:

enter image description here

build.gradle 如下,包含 hibernate 核心和 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'
}

解决方法

那个 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',version: '6.0.0.Final'