【问题标题】:Is it possible to use EclipseLink (with persistence.xml) with Embedded Derby是否可以将 EclipseLink(带有 persistence.xml)与 Embedded Derby 一起使用
【发布时间】:2015-04-21 05:11:27
【问题描述】:

这就是我想要实现的目标:
使用嵌入式 Derby 实现 JPA 的 Java 应用程序。一旦这个工作正常,我就计划拥有 Spark(使用 Jetty 服务器)和 Angular js。

这些是我正在使用的工具/框架
Eclipse IDE (Luna)
Maven 构建系统
JPA 实现 (EclipseLink)
用于数据库的嵌入式 Derby
带有嵌入式 Jetty 服务器的 Spark。
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>

我的主类中的代码 sn-p

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

我不确定这是否可能,但我找不到任何做过类似事情的教程或答案。

感谢任何帮助。

提前谢谢..

【问题讨论】:

  • 是的,可以设置 EclipseLink 和嵌入式 Derby。检查此post。尽管它使用的是 GlassFish 而不是 Jetty,但它证明了无论如何都是可能的。我希望它有所帮助。

标签: java jakarta-ee jpa eclipselink derby


【解决方案1】:

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

【讨论】:

  • 就是这样。这和添加 target-database property="Derby" 就像一个魅力。 ''
猜你喜欢
  • 2021-11-12
  • 2016-04-01
  • 2011-01-20
  • 2018-08-11
  • 2021-08-05
  • 2019-03-18
  • 2014-03-15
  • 2021-03-31
  • 2020-12-22
相关资源
最近更新 更多