howto:带有glassfish的内存德比数据库

时间:2015-11-18 11:59:11

标签: java glassfish derby javadb

我需要在远程Glassfish 4.1服务器上运行arquillian + junit测试。这些测试用例的数据库表需要为
(1)创建 in-memory
(2)使用嵌入式JavaDB
(3)测试执行后丢弃

下面的glassfish-resources.xml会起作用吗?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC
    "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN"
    "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
    <jdbc-resource pool-name="ArquillianEmbeddedDerbyPool"
                   jndi-name="java:app/jdbc/chapter2" />
    <jdbc-connection-pool name="ArquillianEmbeddedDerbyPool"
                          res-type="javax.sql.DataSource"
                          datasource-classname="org.apache.derby.jdbc.EmbeddedDataSource"
                          is-isolation-level-guaranteed="false">
        <property name="databaseName" value="memory:action-bazaar-db"/>
        <property name="createDatabase" value="create"/>
    </jdbc-connection-pool>
</resources>

我确实尝试过,但不确定数据库是否在内存中创建。每次运行测试时我都会遇到以下错误。如何摆脱这个错误?

  

PER01000:获得SQLException执行语句“CREATE TABLE SEQUENCE   (SEQ_NAME VARCHAR(50)NOT NULL,SEQ_COUNT DECIMAL(15),PRIMARY KEY   (SEQ_NAME))“:java.sql.SQLException:表/视图'SEQUENCE'已经存在   存在于Schema'APP'中

1 个答案:

答案 0 :(得分:0)

如果您使用Maven进行构建,则可以使用我编写的derby-maven-plugin GitHubhere和Maven Central。

您可以查看{{3}}我对类似问题的回答。