是否可以将 EclipseLink(persistence.xml)与嵌入式 Derby 一起使用
Is it possible to use EclipseLink (with persistence.xml) with Embedded Derby
所以这就是我想要实现的目标:
一个 Java 具有 JPA 实现的应用程序 usinf Embedded Derby。一旦成功,我就计划拥有 Spark(带有 Jetty 服务器)和 Angular js.
这些是我正在使用的tools/frameworks
日食 IDE(月神)
Maven构建系统
JPA 实现 (EclipseLink)
用于数据库的嵌入式 Derby
带有嵌入式 Jetty 服务器的 Spark。
Angular JS
我使用 Derby 嵌入式驱动程序和数据库属性定义了 persistence.xml。
在 Main class 中,我正在使用 EntityManger 来获取 EM。我还创建了 EmbeddedDerby 的新实例来启动引擎。
但是当我 运行 应用程序时,它说 "No Persistence provider Persistence for Entity Manager"named testSparkJettyDerby
这是我的 persistence.xml
<?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="testSparkJettyDerby" transaction-type="RESOURCE_LOCAL">
<class>model.MyUser</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:sample;create=true"/>
<property name="javax.persistence.jdbc.user" value="user"/>
<property name="javax.persistence.jdbc.password" value="xxxx"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
</properties>
</persistence-unit>
我的 Main 中的代码片段 Class
createConnection();
// TODO Auto-generated method stub
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
private static void createConnection()
{
try
{
Class.forName("org.eclipse.persistence.jpa.PersistenceProvider");
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
//Get a connection
conn = DriverManager.getConnection(dbURL);
if(conn != null) {
System.out.println("Connected...");
}
}
catch (Exception except)
{
except.printStackTrace();
}
}
我的 derby jar 文件在 class 路径中。
我不确定这是否可行,但我找不到任何做过类似操作的教程或答案。
感谢任何帮助。
提前致谢..
确保您的 persistence.xml 文件位于 类(或任何您的构建目录)/META-INF.
所以这就是我想要实现的目标:
一个 Java 具有 JPA 实现的应用程序 usinf Embedded Derby。一旦成功,我就计划拥有 Spark(带有 Jetty 服务器)和 Angular js.
这些是我正在使用的tools/frameworks
日食 IDE(月神)
Maven构建系统
JPA 实现 (EclipseLink)
用于数据库的嵌入式 Derby
带有嵌入式 Jetty 服务器的 Spark。
Angular JS
我使用 Derby 嵌入式驱动程序和数据库属性定义了 persistence.xml。 在 Main class 中,我正在使用 EntityManger 来获取 EM。我还创建了 EmbeddedDerby 的新实例来启动引擎。
但是当我 运行 应用程序时,它说 "No Persistence provider Persistence for Entity Manager"named testSparkJettyDerby
这是我的 persistence.xml
<?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="testSparkJettyDerby" transaction-type="RESOURCE_LOCAL">
<class>model.MyUser</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:derby:sample;create=true"/>
<property name="javax.persistence.jdbc.user" value="user"/>
<property name="javax.persistence.jdbc.password" value="xxxx"/>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
</properties>
</persistence-unit>
我的 Main 中的代码片段 Class
createConnection();
// TODO Auto-generated method stub
factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();
private static void createConnection()
{
try
{
Class.forName("org.eclipse.persistence.jpa.PersistenceProvider");
Class.forName("org.apache.derby.jdbc.EmbeddedDriver").newInstance();
//Get a connection
conn = DriverManager.getConnection(dbURL);
if(conn != null) {
System.out.println("Connected...");
}
}
catch (Exception except)
{
except.printStackTrace();
}
}
我的 derby jar 文件在 class 路径中。
我不确定这是否可行,但我找不到任何做过类似操作的教程或答案。
感谢任何帮助。
提前致谢..
确保您的 persistence.xml 文件位于 类(或任何您的构建目录)/META-INF.