Jpa EclipseLink:EntityManager没有持久性提供程序
我正在尝试开发一个web应用程序。我开始创作剧本!Eclipse中的框架项目。 对于模型部分,我选择使用JPA,因为我已经创建了数据库,所以我正在寻找一种自动生成模型类的方法。 我将其转换为刻面形式,并用于创建与数据库的映射。在配置期间,我被要求选择JPA实现,因此我选择EclipseLink 2.1.3 Helios作为用户库。 在我的项目中添加的所有jar。 搜索类似错误后,我将persistence.xml修改为:Jpa EclipseLink:EntityManager没有持久性提供程序,jpa,eclipse-plugin,playframework,eclipselink,Jpa,Eclipse Plugin,Playframework,Eclipselink,我正在尝试开发一个web应用程序。我开始创作剧本!Eclipse中的框架项目。 对于模型部分,我选择使用JPA,因为我已经创建了数据库,所以我正在寻找一种自动生成模型类的方法。 我将其转换为刻面形式,并用于创建与数据库的映射。在配置期间,我被要求选择JPA实现,因此我选择EclipseLink 2.1.3 Helios作为用户库。 在我的项目中添加的所有jar。 搜索类似错误后,我将persistence.xml修改为: <?xml version="1.0" encoding="
<?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"/>
</properties>
</persistence-unit>
</persistence>
org.eclipse.persistence.jpa.PersistenceProvider
型号。等级
models.GradePK
模特,学生
我现在得到的确切错误是:
执行异常(第98行附近的/app/controllers/class.java中)
发生PersistenceException:没有名为jpa的EntityManager的持久性提供程序
我必须注意,在application.conf中,我声明了db连接,当我运行应用程序时,我得到了
22:03:53084信息~已连接到jdbc:mysql://localhost/studentapplication?useUnicode=yes&characterEncoding=UTF-8&连接安装=utf8\u常规\u ci
最后,文件结构是:
-控制器-型号
-视图
-META-INF
|_persistense.xml 正如您所了解的(除了我的代表之外),我是web应用程序开发的新手,尤其是JPA。我将非常感谢任何形式的帮助。如果我发布了不需要的信息或遗漏了必需的信息,我会提前道歉。谢谢你抽出时间
Thomas看起来您在应用程序中引用的持久性单元的名称与persistence.xml中的名称不同。持久化单元在persistence.xml中命名为“StudentApplication”。但是,错误表明它在应用程序中被命名为“jpa” 假设您使用的是应用程序管理实体管理器,则应用程序中必须有这样一行代码:
EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa");
换成
EntityManagerFactory emf = Persistence.createEntityManagerFactory("StudentApplication");
马特,我不知道该怎么感谢你。你让一个人在地中海的一个小岛上同时感到非常非常愚蠢和非常非常快乐。谢谢。让我为你们感到高兴的是,你们地区目前的天气比波罗的海更宜人。不客气!