春季:H2 数据库持久性

2022-09-01 15:27:11

我的应用程序.属性:

spring.datasource.driverClassName=org.h2.Driver
spring.datasource.url=jdbc:h2:./src/main/resources/asnDB;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.user=sa
spring.datasource.password=
spring.h2.console.enabled=true
spring.jpa.hibernate.ddl-auto=create

我有一个数据.sql当我开始春季项目时加载。

如何更改 application.properties 以使数据库持久化?

目前,它总是会成为一个新的。如果我将 更改为 ,它也不起作用。我知道这会覆盖我的数据库,但我不知道如何让它持久化。ddl.auto=createddl.auto=updateddl.auto=create

在数据中.sql有 3 个 Insert 语句,当我运行项目时,我的数据库中已经有 3 个 Insert 语句。然后,我通过我的UI插入一个新项目并退出该项目。当我重新运行项目时,只有最初的3个插入。但应该有4个插入。


答案 1

您错过了自动重新连接功能

spring.datasource.url=jdbc:h2:file:~/test2;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=真

例如,这有效:

spring.datasource.url=jdbc:h2:file:~/test2;DB_CLOSE_ON_EXIT=FALSE;AUTO_RECONNECT=TRUE
spring.datasource.username=admin
spring.datasource.password=password
spring.datasource.driver-class-name=org.h2.Driver
#spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=update

答案 2

持久性来自属性 spring.jpa.hibernate.ddl-auto 正在更新而不是被创建


推荐