是否可以将EclipseLink(带有persistence.xml)与Embedded Derby一起使用

时间:2015-04-21 05:11:28

标签: java java-ee jpa eclipselink derby

所以这就是我想要实现的目标: 使用嵌入式Derby的JPA实现Java App。一旦这个工作,我计划使用Spark(使用Jetty Server)和Angular js。

这些是我正在使用的工具/框架
Eclipse IDE(Luna)
Maven Build系统
JPA实现(EclipseLink)
用于数据库的嵌入式Derby
Spark with Embedded Jetty服务器。
Angular JS

我使用Derby Embedded Driver和db属性定义了persistence.xml。 在Main类中,我使用EntityManger来获取EM。我还创建了EmbeddedDerby的新实例来启动引擎。

但是,当我运行应用程序时,它说“实体管理器没有持久性提供程序持久性”,名为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>

我的主类中的代码段

    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文件位于类路径中。

我不确定这是否可行,但我找不到任何做过这样的教程或答案。

感谢任何帮助。

提前致谢..

1 个答案:

答案 0 :(得分:0)

确保您的persistence.xml文件位于类(或任何您的构建目录)/ META-INF