我正在运行一个春季启动应用
除了maven之外没有任何h2设置
当我连接到h2控制台时,我可以看到应该为两个实体创建的表
我连接了JDBC URL: jdbc:h2:mem:testdb (应该是默认值)
有没有办法确定H2当前正在运行什么模式/或H2的某些日志文件?
在我的application.properties中我有这个:
spring.h2.console.enabled=true
spring.h2.console.path=/h2
我在某处看到H2在登录时初始化自己,但我正在观看这些演示的确切步骤,所以不确定是这样。
这些是H @ console中的设置:
答案 0 :(得分:2)
您可以使用以下配置明确指示spring boot创建并连接到H2中的特定架构。
spring.datasource.url=jdbc:h2:~/test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=sa
这将在文件模式下在h2中创建名称测试数据库的数据源。在您的主文件夹中会有一个名为test.db的文件,它将是数据库的数据文件。
DB_CLOSE_ON_EXIT属性决定在每次重新启动时重新创建数据库。
答案 1 :(得分:1)
我实际上一直看到了正确的架构
我认为我没有看到正确架构的原因是 - 我希望看到的JPA实体,不存在。
然后我发现这是因为我没有正确命名JPA实体的包
我把它命名为“域名”(见图):
我应该将它命名为com.example.domain
,可以看出:
这是因为Spring Boot看起来正在使用主类的包下面进行@ComponentScan
“所以我必须在”域“前面加上主类所在的包的名称,是com.example
。
答案 2 :(得分:1)
通过在数据源网址中添加“ SET SCHEMA {default schema}” ,有一种更简单的方法可以告诉Spring JPA H2数据源的默认模式,例如:
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=-1;INIT=CREATE SCHEMA IF NOT EXISTS testdb\\;SET SCHEMA testdb
答案 3 :(得分:0)