我将我的网络应用程序部署到WildFly 8.02 Final服务器。我用默认的开箱即用的数据源,内设有带JNDI名称空间的服务器:H2中我的桌子在哪里?
java:jboss/datasources/ExampleDS
和我使用默认网址:
jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
从IntelliJ IDEA的数据库客户端工具或其他客户端访问H2应用程序(我使用url连接,因为通过默认端口的tcp连接不起作用)。
该应用程序基本上是一个空的WAR,只有实体bean和persistence.xml文件。我打算根据我的注释纯粹测试将在底层数据源中创建哪些表。
这里的事:当我在persistence.xml中设置:
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
战争成功地部署了,但是当我通过任意客户端工具将H2数据源连接我只能看到预先定义的表之后:
SELECT * FROM INFORMATION_SCHEMA.TABLES
我可以通过客户端工具创建表,并且能够通过以前的SQL查询来跟踪它们的存在。所以看起来表格并不是由JPA框架创建的。
但是,当我改变的persistence.xml到不同的模式创建模式:
<property name="javax.persistence.schema-generation.database.action" value="create"/>
部署将失败,JDBC例外,告诉JPA尝试创建已经存在的表,但在同一时间客户端工具还是做不显示任何用户创建的表格。
Thx。
大,THX了很多。现在至少我明白发生了什么,希望我能配置wildfly的默认数据库作为TCP服务器运行。 – Ivan