【发布时间】:2012-12-15 09:25:24
【问题描述】:
我需要使用 EJB 创建 Java Web 应用程序的教育演示。
我想使用 maven Embedded-glassfish 插件来简化运行此演示的人员的工作(这样他们就无需手动设置和配置 glassfish 服务器)。
但是,我不明白如何强制 Embedded-glassfish 使用其他数据库而不是临时 apache derby。我使用 Java Persistence API - 我希望用户使用由我的应用程序启动的永久数据库,例如 H2(它可以正常启动)。
我尝试了直截了当的想法 - 通过 persistence.xml 配置我需要的内容
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="demoData" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://127.0.0.1:12345/demodb"/>
<property name="javax.persistence.jdbc.user" value="sa"/>
<property name="javax.persistence.jdbc.password" value=""/>
<property name="eclipselink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
它没有被完全忽略,它被加载了——但我的 JPA 无论如何都可以使用默认数据库。我能做些什么?我可以以某种方式重新配置 jdbc/__default 数据源,或者使我的持久性文件工作吗?提前致谢!
【问题讨论】: