Ошибка единицы сохраняемости: javax.persistence.PersistenceException: не указан поставщик сохраняемости для EntityManager - PullRequest
0 голосов
/ 18 февраля 2019

Я сделал проект в OSX на Java с Netbeans и работаю над ним с коллегами, которые работают с Windows на github.

Как только они клонируют проект, они получают ошибку ниже, что означает, что она не может подключиться кБаза данных derby с eclipse.

Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named MovieDatabasePU
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
    at moviedatabase.MovieDatabase.deleteFromDB(MovieDatabase.java:126)
    at moviedatabase.MovieDatabase.main(MovieDatabase.java:48)
C:\Users\Mixalis\Documents\NetBeansProjects\Homework3\Ergasia3\nbproject\build-impl.xml:1076: The following error occurred while executing this line:
C:\Users\Mixalis\Documents\NetBeansProjects\Homework3\Ergasia3\nbproject\build-impl.xml:830: Java returned: 1
BUILD FAILED (total time: 2 seconds)

Я проверил все подобные проблемы, описанные в стеке, но файл persistence.xml правильный и находится в папке META-INF, расположенной на src.Папка / META-INF.

Ниже приведена структура файла постоянства.

<?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="MovieDatabasePU" transaction-type="RESOURCE_LOCAL">
    <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
    <class>moviedatabase.entities.FavoriteList</class>
    <class>moviedatabase.entities.Genre</class>
    <class>moviedatabase.entities.Movie</class>
    <properties>
      <property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/person"/>
      <property name="javax.persistence.jdbc.user" value="pli24"/>
      <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDriver"/>
      <property name="javax.persistence.jdbc.password" value="pli24"/>
    </properties>
  </persistence-unit>
</persistence>

enter image description here

При отладке возникает ошибкаутверждение ниже:

 private static void deleteFromDB() {
        EntityManager em;
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("MovieDatabasePU"); <-- This line

        em = emf.createEntityManager();
        em.getTransaction().begin();

Что еще может быть не так, потому что я попробовал почти все решения и до сих пор не подключен к базе данных.

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Ну, мне нужно было только сделать чистку и сборку, чтобы все заработало !!!Все файлы были в порядке и чистые только не было достаточно.

0 голосов
/ 18 февраля 2019

Ваш persistence.xml должен находиться в папке /src/main/resources/META-INF/, а не в папке src/META-INF.

...