Spring Boot:H2数据库未保存到文件中

时间:2015-03-08 00:53:32

标签: spring spring-boot spring-data h2

我试图将H2内存数据库保存到一个带有Spring Boot的文件中,以重用那里的数据。

不幸的是,指定数据源网址的方式如

spring.datasource.url = jdbc:h2:file:~/WeatherDB;FILE_LOCK=FS

complete application.properties

对我不起作用。我无法在硬盘上找到H2生成的文件(重启服务器后,保存的数据也不可用)。

为了形象化,我创建了一个可以在Bitbucket上找到的示例项目。

有了这个,如果应用程序是从带有gradle run的IDE运行,或者是从jar中打包后,它似乎没有什么区别。

持久化和重用H2 DB需要什么配置选项?

更新

我意识到http://localhost:8080/configprops的配置选项有一个执行器端点,显示

"spring.datasource.CONFIGURATION_PROPERTIES": {

    "prefix": "spring.datasource",
    "properties": {
        "schema": null,
        "data": null,
        "xa": {
            "dataSourceClassName": null,
            "properties": { }
        },
        "separator": ";",
        "url": "jdbc:h2:file:~/WeatherDB",
        "platform": "all",
        "continueOnError": false,
        "jndiName": null,
        "sqlScriptEncoding": null,
        "password": "******",
        "driverClassName": "org.h2.Driver",
        "initialize": true,
        "username": "sa"
    }
},

但我在硬盘上找不到文件WeatherDB,重启服务器后也无法获得任何数据。

非常欢迎任何建议; - )

2 个答案:

答案 0 :(得分:3)

您的application.properties文件未被提取。取代

compile "org.springframework.data:spring-data-jpa:1.7.2.RELEASE"
compile "org.hibernate:hibernate-entitymanager:4.3.8.Final"

compile "org.springframework.boot:spring-boot-starter-data-jpa"

答案 1 :(得分:1)

由于架构迁移设置而导致表格被删除,因此我将更新解决方案。

application.properties
spring.jpa.hibernate.ddl-auto=update