2017-03-17 78 views
3

我application.properties:春:H2的數據庫持久

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 

我有,當我開始春天項目裝載的data.sql。

如何更改application.properties以使數據庫持久?

現在它總是做一個新的。如果我將ddl.auto=create更改爲ddl.auto=update,它也不起作用。我知道ddl.auto=create會覆蓋我的數據庫,但我不知道如何使其持久化。

在data.sql中有3個插入語句,當我運行該項目時,我的數據庫中已經有3個插入。然後我通過我的用戶界面插入一個新的並退出該項目。當我重新運行項目時,只有最初的3個插入。但應該有4個插入。

+0

如果當您退出項目數據庫僅包含3個原插入,然後檢查你通過UI做插入後的行被保存並且不rolledback 。 – artemisian

+0

所以我不需要更改我的代碼中的任何內容? – SteveOhio

+0

當您停止應用程序而沒有重新運行應用程序時,有多少行? – artemisian

回答

3

你錯過了自動重新連接功能

spring.datasource.url =的jdbc:H2:文件:〜/ TEST2; DB_CLOSE_ON_EXIT = FALSE; AUTO_RECONNECT = TRUE

使得例如工作原理:

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 
1

持久性來源於財產spring.jpa.hibernate.ddl,汽車更新,而不是被創建