Не удается найти файл persistence.xml и провайдера, пока оба указаны - PullRequest
0 голосов
/ 15 октября 2018

Когда я запускаю свой модульный тест, я получаю эти две ошибки

org.hibernate.jpa.boot.internal.PersistenceXmlParser doResolve INFO: HHH000318: Не удалось найти никакой файл META-INF / persistence.xml.файл в classpath

и

javax.persistence.PersistenceException: Нет поставщика сохраняемости для EntityManager с именем dbContext

Я не получаюони оба, потому что, как вы можете видеть в файле en persistence.xml под этим текстом, все, на что он жалуется, есть.

FolderStructure

и здесьу вас есть мой 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 голосов
/ 15 октября 2018

Структура вашей папки полностью перепутана:

  1. Ваша папка src помечена как папка-источник (синяя), поэтому главная подпапка интерпретируется как Java-пакет
  2. Ваша папка ресурсов находится внутри вашей sources/main -папки. Поэтому Intellij интерпретирует ее как пакет main.resources.META-INF.
  3. (Все ваши настоящие пакеты начинаются с заглавной буквы. Это не ошибка, но, тем не менее, необычно)

Как должна выглядеть структура вашей папки:

  • src / main / java => Отметить эту папку как исходную и поместить туда все ваши пакеты java
  • src / main / resources => Отметить это как папку ресурсов и поместить туда свой META-INF

См. Также: Как создать тестовый каталог в Intellij 13?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...