我试图访问我的嵌入式h2服务器并进行查询。我可以访问,但我创建的表格不会出现在Jboss H2工具上。
这是我的 persistence.xml
<persistence 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"
version="2.1">
<persistence-unit name="primary">
<jta-data-source>java:jboss/datasources/xxxDS</jta-data-source>
<properties>
<!-- For auto create tables on startup -->
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="false" />
</properties>
</persistence-unit>
</persistence>
XXX-ds.xml中
<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
<!-- start H2 DATABASE -->
<datasource jndi-name="java:jboss/datasources/xxxDS"
pool-name="xxx" enabled="true"
use-java-context="true">
<connection-url>jdbc:h2:mem:xxx;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
</datasources>
通过Jboss工具访问H2嵌入式数据库(请参阅图像上的测试成功): java -jar /opt/jboss/jboss-as-7.1.1.Final/modules/com/h2database/h2/main/h2-1.3.161.jar
我可以连接,但是我看不到我在应用程序中创建的表格。我只看到h2系统表。
如何查看我的应用程序持久存在的表?
答案 0 :(得分:2)
您正在使用内存数据库,因此从不同的JVM和类加载器环境访问将无法正常工作。
在使用Jboss 7时,您可以使用 h2console 快速入门查看数据库内容。 Here is the project,它构建了一个 war ,你必须在<jboss_home>/(domain|standalone)/deployments
部署它。
另请注意,使用 hibernate.hbm2ddl.auto 的 create-drop 选项将在取消部署应用程序时删除任何数据库对象。
如果您有机会更改h2数据库配置,可以设置服务器模式。请参阅this short tutorial以了解如何快速执行此操作:)