温馨提示:本文翻译自stackoverflow.com,查看原文请点击:java - H2 Database created with spring-boot-starter-data-jpa but not with spring-boot-starter-data-jdbc
hibernate java jpa spring spring-boot

java - 使用spring-boot-starter-data-jpa创建的H2数据库,但未使用spring-boot-starter-data-jdbc创建的数据库

发布于 2020-04-20 18:04:40

我是 Spring 新人。我正在尝试使用H2数据库和JDBC(而非JPA / Hibernate)。

因此,使用Spring Initializr,当我添加这些依赖项时:

  • spring-boot-starter-web
  • spring-boot-starter-data-jpa
  • h2

并将此属性设置为true: spring.h2.console.enabled=true

数据库mem:testdb已创建,我可以在以下位置连接到该数据库localhost:8080/h2-console

但是当我将jpa依赖项更改为:

  • spring-boot-starter-data-jdbc

未创建数据库,并且我收到此错误消息:

Database "mem:testdb" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-200] 90149/90149 (Help)

所以我想知道为什么它不适用于JDBC,以及您是否知道使它起作用的解决方案。

我在网上找到了两篇文章,看来他们可以使用JDBC创建数据库:

更新:

我想在我的个人计算机上在家做同样的事情,但是它可以工作...

尽管它可以与JPA一起使用,但我不知道为什么它在作业计算机中不起作用。

在日志中,缺少以下行:

com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...

com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed.

o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:testdb'

UPDATE2:

我找到了解决方案:

如我所说,我正在使用Spring Initializr引导项目。在作业PC中,我无法使用最新版本的Spring Boot(2.2.4),所以我选择了2.1.12

版本Spring Boot

在此版本中,它适用于JPA,但不适用于JDBC ...

查看更多

提问者
gstra
被浏览
18
gstra 2020-02-06 17:17

我找到了解决方案:

如我所说,我正在使用Spring Initializr引导项目。在作业PC中,我无法使用最新版本的Spring Boot(2.2.4),所以我选择了2.1.12

版本Spring Boot

在此版本中,它适用于JPA,但不适用于JDBC ...