Spring-boot应用程序,H2嵌入式数据库 - 但是当应用程序关闭时表格消失

时间:2017-04-29 20:55:31

标签: java spring hibernate spring-boot h2

我的 database.properties 文件是:

datasource.driver=org.h2.Driver
datasource.url=jdbc:h2:file:./test_database/comixed_db;create=true
datasource.username=sa
datasource.password=

hibernate.dialect=org.hibernate.dialect.H2Dialect
hibernate.hbm2ddl.auto=update
hibernate.show_sql=false
hibernate.format_sql=true
hibernate.batch.size=20
hibernate.current.session.context.class=org.springframework.orm.hibernate5.SpringSessionContext
hibernate.generate_statistics=false
hibernate.enable_lazy_load_no_trans=false

当我的应用程序启动时,我看到我能够通过使用h2.bat工具查看表格,并从Web浏览器查看数据库。但是,当我关闭应用程序然后使用h2.bat工具返回数据库时,表格都消失了!

AM我在使用hibernate配置时做错了什么?我没有使用 create-drop ,而是更新,因为此代码目前处于不稳定状态,我希望在发生更改时调整表格。但这似乎不是问题,因为它在应用程序关闭时表格会不断消失。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

如果你想让spring boot抓住你的hibernate属性,你应该在spring.jpa前加上它们,所以:

spring.jpa.hibernate.ddl-auto=update

否则,在我看来就是这种情况,spring将使用默认的create-drop选项,因为它正在处理H2内存数据库。

答案 1 :(得分:1)

将以下行添加到 applications.properties

spring.jpa.hibernate.ddl-auto=update

当应用程序退出时,Spring-boot停止丢弃表。