[英]Wildfly Data Persistence
我目前正在研究Java EE项目,并且正在使用Wildfly服务器。 我有一个Web项目和EJB项目,它们已部署到Wildfly服务器上。 例如,我可以保存一个用户,但是只能保存服务器运行的时间。 服务器停机之间没有数据持久性。 我已经通过互联网进行搜索,但是找不到答案。
我的persistence.xml看起来像这样:
<persistence-unit name="primary">
<!-- If you are running in a production environment, add a managed
data source, this example data source is just for development and testing! -->
<!-- The datasource is deployed as WEB-INF/kitchensink-quickstart-ds.xml, you
can find it in the source at src/main/webapp/WEB-INF/kitchensink-quickstart-ds.xml -->
<jta-data-source>java:jboss/datasources/ExampleDS</jta-data-source>
<properties>
<!-- Properties for Hibernate -->
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
<property name="hibernate.show_sql" value="false" />
<value="true"/>
</properties>
如果我想保留任何信息,是否需要重新配置此文件?
我希望你能帮帮我 :)
你的问题是这条线
<property name="hibernate.hbm2ddl.auto" value="create-drop" />
每次启动Wildfly时,JPA都会创建一个具有空数据库的新数据库模型。
调整您的代码以
<property name="hibernate.hbm2ddl.auto" value="update" />
您正在使用“ ExampleDS”,默认情况下将其设置为H2内存数据库。 因此,它不会在有意重启之间保留数据(对开发/测试有用)。 转到wildfly的standalone / configuration / standalone.xml配置文件,然后在“数据源”部分中搜索“ ExampleDS”。 它应该显示:
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
其中“内存”表示内存中。 您可以将“ mem:test”更改为任何写入路径,例如
<connection-url>jdbc:h2:~/test;DB_CLOSE_DELAY=-1</connection-url>
使用存储在家庭文件夹中的基于H2文件的数据库作为“测试”(假设* nix)。
您还可以在datasources-section中定义其他数据库(Postgresql,Oracle等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.