当前位置: 首页 > 知识库问答 >
问题:

Hibernate,JPA,EntityManager的无持久性提供程序,名为

蒙经纶
2023-03-14

我正在使用JPA和Hibernate开发一个Swing应用程序。但每次我尝试调用以下代码以获取EntityManager

try {
    Class.forName("org.postgresql.Driver");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}
EntityManagerFactory emf = Persistence.createEntityManagerFactory("abcd");
EntityManager em = emf.createEntityManager();

我得到以下异常:

Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named abcd: Provider named org.hibernate.jpa.HibernatePersistenceProvider threw unexpected exception at create EntityManagerFactory: 
javax.persistence.PersistenceException
javax.persistence.PersistenceException: Unable to build entity manager factory

Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set

持久性的路径。xmlmy.jar/meta-inf/persistence.xml

 <?xml version="1.0" encoding="UTF-8" ?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
             version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
    <persistence-unit name="abcd" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.url" value="xxx"/>
            <property name="hibernate.connection.password" value="xxx"/>
            <property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
            <property name="hibernate.connection.user" value="xxx"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
        </properties>
    </persistence-unit>
</persistence>

依赖关系:

除 junit 之外的所有依赖项都在类路径中

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.8</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0.2</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-entitymanager</artifactId>
        <version>4.3.10.Final</version>
        <scope>compile</scope>
    </dependency>

共有1个答案

微生阳平
2023-03-14

似乎找不到您的persistence.xml文件。persistence.xml文件的正确文件夹是META-INF而不是meta-inf

 类似资料:
  • 我的动态 Web 应用程序有问题。我刚刚开始学习JavaEE 6,现在我在JPA上堆叠。我配置了我的应用程序,添加了库,但我仍然得到这个令人讨厌的信息:没有名为X的EntityManager的持久性提供程序。我试图在互联网上得到答案,但没有什么帮助我。 这是我的persistance.xml文件: 这是我的班级Uzytkownik.java: 以及servlet中我的EntityManagerFa

  • 我正要为一个新的应用程序创建一个后端,但在配置时遇到了问题。我使用的是<code>GlassFish 5.0.0</code>和<code>Hibernate 5.4.5。最终</code>与<code>MySQL</code>一起使用。 我得到的错误是: < code > persistence . XML : 这是: < code>persistence.xml位于< code > proje

  • 我根本无法解决这个问题,而且有大量的堆栈溢出帖子都带有相同的错误消息。我都试过了,但还是没能成功。也许我在寻找一些小东西。我真的需要帮助,提前谢谢你。 错误消息 这是persistence.xml文件 EntityManagerFactory

  • 问题内容: Hibernate 5.1.1和5.2.2之间发生了什么变化?如果我使用5.2.2,则会收到错误消息“名为pu的EntityManager没有持久性提供程序”。完全相同的配置适用于5.1.1。我应该如何更改代码以使5.2.2正常工作? pom.xml src / main / resources / META-INF中的persistence.xml 创建EntityManager 问

  • 问题内容: 我在目录下使用相同的名字。然后,我用以下代码调用它: 但是,我收到以下错误消息: 这是: 它应该在类路径中。但是,我得到了上面的错误。 问题答案: 在之后,定义持久性提供程序名称:

  • 我正试图让下面的代码正常工作,这样我就可以使用JPA实体。 无论我做什么,我都会得到以下例外。 [错误]无法执行目标org.codehaus.mojo: exec-maven-plugin: 1.1.1: java(default-cli)on project camel-example-jms-file:在执行Java类时发生异常。 有没有办法解决这个问题? 当做 肖恩