Spring启动:H2数据库未保存到文件

Spring启动:H2数据库未保存到文件,spring,spring-boot,spring-data,h2,Spring,Spring Boot,Spring Data,H2,我试图用Spring Boot将内存中的H2数据库持久化到一个文件中,以重用其中的数据 不幸的是,指定数据源url的方法如下 spring.datasource.url = jdbc:h2:file:~/WeatherDB;FILE_LOCK=FS () 不适合我。我在硬盘上的任何地方都找不到H2生成的文件(而且,重新启动服务器后,保存的数据不可用) 为了将其可视化,我创建了一个可以在上找到的示例项目 因此,如果应用程序是从带有gradle run的IDE运行的,或者是在从jar打包后运行的,

我试图用Spring Boot将内存中的H2数据库持久化到一个文件中,以重用其中的数据

不幸的是,指定数据源url的方法如下

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

不适合我。我在硬盘上的任何地方都找不到H2生成的文件(而且,重新启动服务器后,保存的数据不可用)

为了将其可视化,我创建了一个可以在上找到的示例项目

因此,如果应用程序是从带有
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
,重启服务器后也没有任何数据可用


欢迎提出任何建议;-)

未拾取您的
应用程序.properties
文件。替换

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


由于架构迁移将表设置为更新,表被删除

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

嗨,非常感谢你的回答。IMHO它应该有所不同,因为文档中说,如果在“classpath/config包”中找不到application.config,它将在classpath根目录中查找。()不管怎样,我试了一下,但没有成功:(你是对的。我将你的应用程序与我的运行良好的应用程序进行了比较,发现你需要使用Spring Boot JPA依赖项,而不是直接使用Spring Data JPA。我已经更新了我的答案以反映这一点。我已经用你的代码检查了这一更改,现在它运行良好。它运行良好,谢谢!但是我可以在哪里看到存储的数据?在文件中?或者我可以连接。)t由SQL开发人员创建数据库来观看吗?
application.properties
spring.jpa.hibernate.ddl-auto=update