同时指定时找不到persistence.xml和提供者

时间:2018-10-15 12:58:13

标签: java hibernate

在运行单元测试时,我会遇到这两个错误

  

org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve   INFO:HHH000318:在类路径中找不到任何META-INF / persistence.xml文件

  

javax.persistence.PersistenceException:名为dbContext的EntityManager的持久性提供程序

我都没有得到它们,因为正如您在该文本下方的图像en persistence.xml文件中所看到的那样,他所抱怨的一切都在那里。

1

这是我的persistance.xml

    <?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="dbContext">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <properties>
            <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
            <property name="hibernate.connection.url" value="{urltodb}"/>
            <property name="hibernate.connection.autocommit" value="false"/>
            <property name="hibernate.connection.username" value="{myusername}"/>
            <property name="hibernate.connection.password" value="{mypassword}"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
            <property name="hibernate.connection.CharSet" value="utf8"/>
            <property name="hibernate.connection.characterEncoding" value="utf8"/>
            <property name="hibernate.connection.useUnicode" value="true"/>
            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>

1 个答案:

答案 0 :(得分:1)

您的文件夹结构完全混乱:

  1. 您的src-文件夹被标记为源文件夹(蓝色),因此子文件夹main被解释为Java-Package
  2. 您的资源文件夹位于您的sources/main文件夹中,这就是Intellij将其解释为软件包main.resources.META-INF的原因。
  3. (所有真正的包都以大写字母开头。这不是错误,但还是很不正常)

您的文件夹结构应如下所示:

  • src / main / java =>将此标记为源文件夹,并将所有Java包放在此处
  • src / main / resources =>将此标记为资源文件夹,然后将您的META-INF放在其中

另请参阅:How to create a test directory in Intellij 13?