如何在不依赖数据库的情况下使用Hibernate 5(JPA)启动Spring Boot Application 2?

时间:2019-02-28 14:14:40

标签: mysql spring spring-boot jpa hibernate-5.x

首先:这不是重复的问题。

4.5年前,另一个用户wrote (on Stackoverflow.com)要求他的Spring Boot Application即使数据库关闭也应该能够启动。他在Hibernate 4中使用了Spring Boot Application1。我现在在Hibernate 5中使用Spring Boot Application 2,也遇到了同样的问题。我试图为Hibernate 4应用检查后的答案,但这不适用于我的应用程序。

是否仍然可以在不依赖数据库的情况下启动它?以下是(已编辑的)休眠5 -属性(application.yml):

spring:
  datasource:
    url: jdbc:mysql://localhost/schema?serverTimezone=UTC
    username: root
    password: root
    continue-on-error: true
    initialization-mode: never
    tomcat:
      initial-size: 0
      time-between-eviction-runs-millis: 5000
      min-evictable-idle-time-millis: 5000
      min-idle: 0
  jpa:
    show-sql: true
    hibernate:
      ddl-auto: none
    properties:
      hibernate:   
        dialect: org.hibernate.dialect.MySQL5Dialect
        hbm2ddl:
          auto: none
        temp:
          use_jdbc_metadata_defaults: false

我的问题已被标记为“可能重复”。提供的可能答案根本不是可能的答案。如我所写,我被要求(这是一项要求)不要使用任何其他数据库,即使是H2。因此,问题出在EntityManagerFactory Bean(以及数据源)上。如果创建失败,则应用程序无法启动。就是这样。

1 个答案:

答案 0 :(得分:0)

我知道这个问题已经很老了,但是我以这种方式解决了这个问题(对于使用Hikari的人)。

我将这两行添加到application.properties

spring.datasource.hikari.initialization-fail-timeout=-1
spring.datasource.hikari.connection-timeout=0

第一行对于Hikari(https://github.com/brettwooldridge/HikariCP)的文档很明显。据写,对于第二行,允许值在250- *之间。但是我使用零值,它开始按预期工作。