首页 > 解决方案 > H2DB 文件中的表不会出现在 IDEA 中,但会显示在 H2 控制台中

问题描述

我有一些简单的 Spring Boot 项目,其 H2db 文件的位置为 ./dbs/database.mv.db ( ./ 来自我项目的目录)。application.properties 是:

spring.datasource.url=jdbc:h2:./dbs/database;AUTO_SERVER=TRUE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect
spring.jpa.hibernate.ddl-auto=update

# Enabling H2 Console
spring.h2.console.enabled=true
# Custom H2 Console URL
spring.h2.console.path=/h2

因此,Spring Boot App 得到了它并且可以使用其中的表进行操作,将数据存储在 DB 文件中。localhost:8080/h2 的控制台也显示它。但是我对 IDEA 有疑问:IDEA 只能通过绝对名称获得连接(带有 url jdbc:h2:~/Documents/projects/java/seccomp/dbs/database;AUTO_SERVER=TRUE 的嵌入式源)。但在这种情况下,IDEA 根本没有向我展示任何表格。我很困惑,可能 App 在目标目录中创建了一些表?不,如果我从 .dbs/ 中删除了我的 mv.db 文件,它将在从应用程序进行数据操作后再次创建。

为什么应用程序和 H2 控制台向我显示表格,但 IDEA 没有?

标签: javaspring-bootintellij-ideah2

解决方案


./dbs/database;AUTO_SERVER=TRUE您可以指定数据库文件的路径,该文件相对于运行程序的正确工作目录进行解析。使用~/Documents/projects/java/seccomp/dbs/database- 您指定它相对于您的用户主页。确保在这两种情况下您实际上指定了相同的路径。


推荐阅读