首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Wildfly数据持久化

Wildfly数据持久化
EN

Stack Overflow用户
提问于 2016-05-27 02:36:00
回答 2查看 1K关注 0票数 1

我目前正在开发一个Java项目,并且正在使用Wildfly服务器。我有一个部署到Wildfly服务器上的Web项目和EJB项目。例如,我可以保存一个用户,但只能在服务器运行的时候。在服务器宕机之间不存在数据持久性。我在网上找过了,但没有找到答案。

我的persistence.xml看起来像这样:

代码语言:javascript
复制
   <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>

如果我想持久化任何信息,我需要重新配置这个文件吗?

我希望你能帮助我:)

EN

回答 2

Stack Overflow用户

发布于 2016-05-27 02:39:12

你的问题是这一行

代码语言:javascript
复制
<property name="hibernate.hbm2ddl.auto" value="create-drop" />

每次wildfly启动时,JPA都会使用一个空数据库创建一个新的数据库模型。

将您的代码调整为

代码语言:javascript
复制
 <property name="hibernate.hbm2ddl.auto" value="update" />
票数 6
EN

Stack Overflow用户

发布于 2016-05-27 21:27:15

您使用的是默认设置为H2内存数据库的"ExampleDS“。因此,它不会故意在两次重新启动之间保存数据(对于开发/测试很有用)。转到wildfly的standalone/ configuration /standalone.xml配置文件,在"datasources“部分搜索"ExampleDS”。它应该显示:

代码语言:javascript
复制
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>

其中"mem“表示内存中。您可以将"mem:test“更改为任何写入路径,例如

代码语言:javascript
复制
<connection-url>jdbc:h2:~/test;DB_CLOSE_DELAY=-1</connection-url>

使用主文件夹中存储为“H2”的基于测试文件的数据库(假设*nix)。

您还可以在datasources-section中定义其他数据库(Postgresql、Oracle等)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37468618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档