JPA Нет поставщика сохраняемости для EntityManager - PullRequest
1 голос
/ 06 декабря 2011

Я знаю, что есть некоторые другие вопросы на эту тему, но ни один из ответов не сработал. Я новичок в JPA, и я использую EclipseLink в качестве реализации и Eclipse в качестве IDE. Это мой persistence.xml (он находится в папке META-INF):

<?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="DBService" transaction-type="RESOURCE_LOCAL">
        <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

        <class>com.maze.model.EventModel</class>
        <class>com.maze.model.StoryModel</class>

        <properties>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/mazedb;create=true" />
            <property name="javax.persistence.jdbc.user" value="user" />
            <property name="javax.persistence.jdbc.password" value="pass" />

            <!-- EclipseLink should create the database schema automatically -->
            <property name="eclipselink.ddl-generation" value="create-tables" />
            <property name="eclipselink.ddl-generation.output-mode" value="database" />
        </properties>
    </persistence-unit>

</persistence>

и вот я пытаюсь получить EntityManagerFactory

private EntityManagerFactory emf;
emf = Persistence.createEntityManagerFactory("DBService");

Во время выполнения я получаю эту ошибку: javax.persistence.PersistenceException: No Persistence provider for EntityManager named DBService

Я следовал инструкциям из учебных пособий, но безрезультатно ...

Редактировать: Я также добавил в WEB-INF / lib эти jar-файлы: eclipselink.jar; javax.persistence_2.0.3.v201010191057.jar; mysql-connector-java-5.1.17-bin.jar, добавил JPA в Project Facets, но пока ничего не видел ...

Ответы [ 2 ]

3 голосов
/ 06 декабря 2011

поместите ваш файл persistence.xml в каталог META-INF вашего файла военных действий. Кроме того, поместите копию в ваш каталог lib и каталог classes.

Я использую eclipselink на работе, использую автономный пакет jar, содержащий мои классы сущностей, каталог MET-INF с persistence.xml, и он отлично работает.

Вероятно, вам нужно создать файл jar, содержащий классы сущностей, плюс MET-INF / persistence.xml, и добавить этот файл jar в каталог lib вместе с eclipselink.jar.

Другая вещь, которую нужно проверить, это RESOURCE-LOCAL, вы должны использовать это, если вы используете JPA в веб-приложении, без каких-либо компонентов управления компонентами или в автономном приложении.

1 голос
/ 28 февраля 2019

вы должны поместить ваш файл persistence.xml в MATA-INF и написать файл persistence.xml строчной буквой.Я думаю, что вы написали первое письмо или какое-то письмо с заглавной буквы, и у меня тоже есть эта ошибка.вы должны написать в точности так: persistence.xml

...