EclipseLink: поставщик постоянной устойчивости для EntityManager

Я пытаюсь разработать веб-приложение. Я начал создавать Play! Рамочный проект в Eclipse. Для части модели я решил использовать JPA, и поскольку я уже создал базу данных, я искал способ автогенерации классов модели. Я преобразовал его в фасетную форму и использовал Dali, чтобы создать сопоставление с базой данных. Во время конфигурации мне посчастливилось выбрать реализацию JPA, поэтому я выбрал EclipseLink 2.1.3 Helios в качестве пользовательской библиотеки. Все банки, добавленные в мой проект. После поиска подобных ошибок я изменил файл persistence.xml на:

<!--?xml version="1.0" encoding="UTF-8"?-->
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/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">
 <persistence-unit name="StudentApplication">
 <provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
 <class>models.Grade</class>
 <class>models.GradePK</class>
 <class>models.Student</class>
 <properties>
 <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/studentapplication">
 <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver">
 <property name="javax.persistence.jdbc.user" value="root">
 <property name="javax.persistence.jdbc.password" value="root">
 </property></property></property></property></properties>
 </persistence-unit>
</persistence>

Точная ошибка, которую я получаю сейчас: Исключение выполнения (В/app/controllers/class.java строка 98) PersistenceException: отсутствует поставщик Persistence для EntityManager с именем jpa

Я должен отметить, что в application.conf я объявил соединение db, и когда я запускаю приложение, я получаю

22: 03: 53,084 INFO ~ Подключено к jdbc: mysql://localhost/studentapplication? useUnicode = yes & characterEncoding = UTF-8 & connectionCollation = utf8_general_ci

Наконец, структура файла:

-controllers  -моделей  Вид  М- INF         | _persistense.xml

Как вы, возможно, поняли (помимо моего представителя), я новичок в разработке веб-приложений и, в частности, в JPA. Я был бы более чем благодарен любой помощи. Я заранее извиняюсь, если я разместил не необходимую информацию или если я пропустил обязательную информацию. Спасибо за ваше время.

Томас

1 ответ

Кажется, что вы ссылаетесь на блок персистентности в своем приложении под другим именем, чем в вашем persistence.xml. Ваша единица персистентности называется "StudentApplication" в файле persistence.xml. Однако ошибка указывает, что в вашем приложении она называется "jpa".

Предполагая, что вы используете диспетчер сущностей, управляемых приложениями, в вашем приложении должна быть такая строка:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");

Измените его на

EntityManagerFactory emf = Persistence.createEntityManagerFactory("StudentApplication");

licensed under cc by-sa 3.0 with attribution.