繁体   English   中英

Wildfly数据持久性

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM