derby persistence.xml

时间:2012-02-02 08:59:49

标签: eclipselink derby

persistence.xml中有关derby客户端驱动程序的属性声明应该是什么:

<property name="javax.persistence.jdbc.driver" value="  ?  " />

当从Java更新数据库时,我不断得到以下例外 实际上我需要客户端驱动程序而不是EmbeddedDriver。不知道如何命名。
该项目在其Java构建路径/库中具有Derby Client JDBC驱动程序(eclipse插件具有derby插件)。 导致异常的程序指令是:

    factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
    EntityManager em = factory.createEntityManager();


[EL Info]: 2012-02-02 10:48:44.805--ServerSession(1434473856)--EclipseLink, version: Eclipse Persistence Services - 2.3.2.v20111125-r10461
[EL Severe]: 2012-02-02 10:48:44.93--ServerSession(1434473856)--Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error.  Class [org.apache.derby.jdbc.EmbeddedDriver] not found.
Exception [EclipseLink-4003] (Eclipse Persistence Services - 2.3.2.v20111125-r10461): org.eclipse.persistence.exceptions.DatabaseException
Exception Description: Configuration error.  Class [org.apache.derby.jdbc.EmbeddedDriver] not found.

1 个答案:

答案 0 :(得分:3)

javax.persistence.jdbc.driver定义了用于访问数据库的协议。

如果要访问远程/本地derby网络服务器,则需要像这样设置:

<property name="javax.persistence.jdbc.driver" value="jdbc:derby://localhost:1527/my_schema  " />

其中1527是NetworkServer的端口。 my_schema是您的数据库架构。

如果您还没有架构,请使用;create=true创建它:

jdbc:derby://localhost:1527/my_schema;create=true

您可能需要查看Getting Started Guide

旁注:

Class [org.apache.derby.jdbc.EmbeddedDriver] not found.

这告诉您并非所有derby所需的jar都存在于类路径中(在您发表的评论中,就是这种情况)。如果您遇到任何此类异常,请确保所有jar实际上都在类路径中。