将 Spring-Boot-Starter-Web 与 ObjectDB 结合使用

Using Spring-Boot-Starter-Web in combination with ObjectDB

我正在 Spring-Boot 中使用 ObjectDB 实现一个程序。为了实际使用 ObjectDB,我遵循了 this approach,它运行良好。

但是,一旦我想使用 `spring-boot-starter-web``,就会出现以下错误:

dataSource or dataSourceClassName or jdbcUrl is required. at com.zaxxer.hikari.HikariConfig.validate

我一直在摆弄属性文件中的参数 jdbc-url,正如许多帖子中提到的那样。试图排除 Hikari 因为可能 ObjectDB 使用他自己的连接池机制。但是没有任何结果。

关于如何解决此错误的任何想法?

我使用的代码与 link 中的代码完全相同。我在 pom 中添加了 Spring-Actuator

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
</dependency>

你试过这个(在 pom.xml 吗?):

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
     <dependency>
        <groupId>com.objectdb</groupId>
        <artifactId>objectdb</artifactId>
        <version>2.8.4</version>
    </dependency>

并且不要忘记在 application.properties 中添加数据库连接:

 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
 spring.datasource.username=mydbuser
 spring.datasource.password=mydbpass
 spring.datasource.url=jdbc:....

有关详细信息,请参阅 https://www.baeldung.com/the-persistence-layer-with-spring-and-jpa

在某些情况下,使用 JPA 的框架需要指定 JDBC 连接详细信息,包括 JDBC 驱动程序,然后将其传递给 JPA 实现并由其用于访问数据库。 ObjectDB 是一个 JPA 实现,它不访问外部数据库,因此不需要或不使用 JDBC 驱动程序。

正如问题评论中所讨论的,一个简单的解决方法是指定一个虚拟 JDBC 驱动程序,它将被传递给 ObjectDB 然后被忽略。它看起来确实很奇怪,但这是在 ObjectDB 实现自己的 JDBC 驱动程序之前要走的路,或者相关框架在请求 JDBC 驱动程序方面变得更加灵活。