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.
最佳答案
javax.persistence.jdbc.driver
定义用于访问数据库的协议(protocol)。
如果你想访问远程/本地derby网络服务器,你需要这样设置:
<property name="javax.persistence.jdbc.driver" value="jdbc:derby://localhost:1527/my_schema " />
其中 1527 是您的网络服务器的端口。 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 实际上都在类路径中。
关于eclipselink - Derby 持久性.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9109497/