【发布时间】:2011-12-05 22:43:57
【问题描述】:
我知道关于这个主题还有其他一些问题,但没有一个答案有效。
我是 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
我已按照教程中的步骤进行操作,但没有结果...
编辑:我还将这些 jars 添加到 WEB-INF/lib 中:eclipselink.jar; javax.persistence_2.0.3.v201010191057.jar; mysql-connector-java-5.1.17-bin.jar,将 JPA 添加到 Project Facets 但还没有看到没有结果...
【问题讨论】:
-
如何打包您的应用程序。它是您在应用程序服务器中运行的独立应用程序还是 *.war?
persistence.xml在您的目录结构中的确切位置是什么? -
@PiotrNowicki 我正在使用适用于 Java EE 的 Eclipse IDE。我已经创建了一个动态 Web 项目,并且这个文件夹是自动创建的。
-
所以如果你使用 *.war - 你的
persistence.xml在WEB-INF/classes/META-INF/persistence.xml中吗? -
是的,现在我确定它应该在哪里。
标签: java jpa eclipselink